class Polygon
attr_accessor :sides
@sides = 10
end
当我试图接近
puts Polygon.new.sides # => nil
我得零分如何进入侧面?
这里怎么了?
最佳答案
由于ruby类定义只是可执行代码,所以当您在类定义的上下文中说@sides = 10
时,您是在Polygon
上定义它的(而不是Polygon的实例):
class Polygon
attr_accessor :sides
@sides = 10
end
Polygon.instance_variables
# => [:@sides]
您可能希望从初始值设定项设置多边形实例上的边数:
class Polygon
attr_accessor :sides
def initialize(sides)
@sides = sides
end
end
Polygon.new(10).sides
# => 10