【发布时间】:2014-05-14 16:29:54
【问题描述】:
我不明白为什么他们sayRuby 按值传递所有参数,同时下面的代码证明相反:
class MyClass1
@var1 = 123
def get1
@var1
end
def set1=value
@var1 = value
end
end
c1 = MyClass1.new
c1.set1 = 444
p c1.get1 # 444
def test1 mc
mc.set1 = 999
end
test1 c1
p c1.get1 # 999
如果是按值,它将打印出444,而不是999。
【问题讨论】:
-
除了整个“@var1”是一个类变量,当你在实例之外访问它时”事情(你认为 123 与任何事情有什么关系),以及“wat”因为什么你说的没有道理。
-
@DaveNewton,我没听懂。
-
您将其设置为新值。为什么你认为它不会改变?
-
Ruby 通过引用传递一切,它没有按值传递的概念。您从哪里听说它按值传递参数?
-
@TerranceKennedy:那是倒退。 Ruby 完全是按值传递,没有按引用传递的概念。答案中的冗长解释。
标签: ruby