一般来说,创建一个实例变量的最佳做法和优缺点是可以从多个方法访问或创建一个实例变量,该实例变量只是作为参数传递给这些方法。在功能上它们是等价的,因为方法仍然能够使用变量来完成工作。虽然我可以看到一个好处,如果你正在更新变量,并希望返回更新的值,但在我的具体情况下,变量永远不会更新,只能通过每种方法读取以决定如何操作。哪个更好?创建一个实例变量或在Ruby中传递一个局部变量?
示例代码是明确的:
class Test
@foo = "something"
def self.a
if @foo == "something"
puts "do #{@foo}"
end
end
a()
end
VS
class Test
foo = "something"
def self.a(foo)
if foo == "something"
puts "do #{foo}"
end
end
a(foo)
end
请注意:在类级别声明`@foo =“something”`将使其成为类对象的实例变量,而不是测试对象。至少,这对我来说是个棘手的问题。 – Jeremy 2010-11-23 00:18:06