【发布时间】:2011-09-11 05:57:16
【问题描述】:
我在理解符号在我的代码中的工作方式时遇到了一些问题。我知道它们本质上是不可变的字符串,但我不完全理解符号如何自动“识别”我的代码的其他部分。
例如,在下面的程序中,我将两个方法对象传递给我的 math_machine 方法,但为此我使用了一个表示它们名称的符号。 Ruby 怎么知道我指的是那些方法?
def plus x,y
return x+y
end
def minus x,y
return x-y
end
def math_machine(code,x,y)
code.call(x,y)
end
puts math_machine(method(:plus),5,5)
puts math_machine(method(:minus),5,5)
另一个我不明白的符号示例是关于封装的——attr_reader、attr_writer 和 attr_accessor 如何知道后面的符号指的是我程序中的实例变量?
如果有人可以向我解释 Ruby 中符号的神秘本质(幕后发生的事情),那就太棒了!
【问题讨论】:
-
你读过this question吗?
标签: ruby ruby-on-rails-3 symbols