通常,创建可从多种方法访问的实例变量或创建仅作为参数传递给这些方法的实例变量的最佳实践和优点/缺点是什么。从功能上讲,它们是等效的,因为方法仍然可以使用变量来完成工作。虽然如果您正在更新变量并想返回更新的值,我会看到一个好处,但是在我的特定情况下,变量永远不会更新,只能由每种方法读取以决定如何操作。
示例代码要清楚:
class Test
@foo = "something"
def self.a
if @foo == "something"
puts "do #{@foo}"
end
end
a()
end
Run Code Online (Sandbox Code Playgroud)
与
class Test
foo = "something"
def self.a(foo)
if foo == "something"
puts "do #{foo}"
end
end
a(foo)
end
Run Code Online (Sandbox Code Playgroud) ruby ×1