Ruby符號(hào)如何用于元編程

小樊
82
2024-11-02 11:29:24

在Ruby中,符號(hào)(Symbol)是一種不可變的、唯一的值類型,通常用作哈希的鍵或方法名

  1. 字符串插值:
name = "John"
age = 30

# 使用符號(hào)作為變量名
person = {
  name: name,
  age: age
}

puts person[:name] # 輸出 "John"
puts person[:age]  # 輸出 30
  1. 使用符號(hào)作為方法名:
class Person
  def initialize(name, age)
    @name = name
    @age = age
  end

  # 使用符號(hào)作為方法名
  def [](key)
    send(key)
  end
end

person = Person.new("John", 30)
puts person[:name] # 輸出 "John"
puts person[:age]  # 輸出 30
  1. 使用符號(hào)作為哈希的鍵:
hash = {
  :name => "John",
  :age => 30
}

puts hash[:name] # 輸出 "John"
puts hash[:age]  # 輸出 30
  1. 使用符號(hào)作為常量:
class Constants
  MAX_AGE = 120
  MIN_AGE = 0
end

puts Constants::MAX_AGE # 輸出 120
puts Constants::MIN_AGE # 輸出 0
  1. 使用符號(hào)作為塊參數(shù):
def process_data(data, &block)
  block.call(data)
end

process_data("John") { |name| puts name } # 輸出 "John"
  1. 使用符號(hào)作為迭代器:
array = [:apple, :banana, :cherry]

array.each do |item|
  puts item
end
# 輸出
# apple
# banana
# cherry

通過(guò)這些示例,您可以看到Ruby中的符號(hào)在元編程中的應(yīng)用。它們提供了一種簡(jiǎn)潔、高效的方式來(lái)表示和操作代碼中的各種元素。

0