相关疑难解决方法(0)

带有attr_accessor的类上的Ruby instance_eval

我理解instance_eval和之间的基本区别class_eval.我玩的时候发现的东西是奇怪的attr_accessor.这是一个例子:

A = Class.new
A.class_eval{ attr_accessor :x }

a = A.new
a.x = "x"
a.x
=> "x"  # ... expected

A.instance_eval{ attr_accessor :y }

A.y = "y"
=> NoMethodError: undefined method `y=' for A:Class

a.y = "y"
=> "y"      # WHATTT?
Run Code Online (Sandbox Code Playgroud)

怎么样:

  1. instance_eval没有在我们的A类(对象)的访问器上
  2. 然后它实际上把它添加到A的实例?

ruby instance-eval attr-accessor class-eval

5
推荐指数
1
解决办法
2380
查看次数

标签 统计

attr-accessor ×1

class-eval ×1

instance-eval ×1

ruby ×1