我不明白为什么他们说 Ruby按值传递所有参数,同时以下代码证明了相反的情况:class MyClass1 @var1 = 123 def get1 @var1 end def set1=value @var1 = value endendc1 = MyClass1.newc1.set1 = 444p c1.get1 # 444def test1 mc mc.set1 = 999endtest1 c1p c1.get1 # 999如果按值显示,它将打印出来444,而不是999。
3 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
同意100%。有趣的是,Chuck在此处使用的同一示例显示Ruby是按值传递(他的定义),而我将用来显示Ruby是按引用传递(我的定义)。将来,我将避免在Ruby中对按值传递/引用进行全面声明,这似乎会使人们更加困惑。
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
是的,我完全理解为什么您会这样称呼。您对“按引用传递”的定义与现实世界中人们编程的方式更加相关。但不幸的是,我们被困在半个世纪的计算机科学文献中,并且整个教育系统仍然使用旧的定义,因此,我认为让人们知道“如果您阅读“通过引用”一词,可能不是在谈论Ruby。”
- 3 回答
- 0 关注
- 592 浏览
添加回答
举报
0/150
提交
取消