好吧,我不是来寻求答案的。但老实说,我在类变量方面并不是很好。所以我很感激你能指导我使用这段代码。
我已经阅读了那些文档中的类变量。我有些什么样的理解呢。但它涉及到应用它为我自己的使用。我会感到困惑。
class Square
@@sqArray = {}
#attr_accessor :length
def initialize
if defined?(@@length)
randno = "%s" % [rand(20)]
@@length = randno.to_i
@@sqArray = @@length
else
randno = "%s" % [rand(20)]
@@length = randno.to_i
@@sqArray = @@length
end
end
def Area
@@area = @@length * @@length
return @@area
@@sqArray[@@length.to_sym] = @@area
puts @@sqArray
end
end
s1 = Square.new
puts s1.Area
让我解释一下这段代码。基本上每次我创建一个 Square 对象时,它都会去初始化方法。将生成一个随机数并将其传递给@@length,并将@@length 分配给散列@@sqArray 作为它的键。但现在问题是当我创建一个新对象 s1 时。当我想显示区域时,我想测试以打印散列@@sqArray,其长度为键,区域为值。但现在的问题是只返回它的区域。例如仅 114。假设是 [24 => 114]