这是示例代码:
class User
attr_accessor :name, :email
def initialize(attributes = {})
@name = attributes[:name]
@email = attributes[:email]
end
....
end
当我做
example = User.new
它会创建一个空用户,我可以通过以下方式分配其名称和电子邮件
example.name = "something"
example.email = "something"
我的问题是,为什么这东西有效?计算机如何知道 example.name 表示类中的 @name 变量?我假设 name 和 :name 是不同的,并且在代码中我们没有明确告诉计算机 example.name 等同于 :name 符号。