我不明白為什么他們說 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 回答

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
同意100%。有趣的是,Chuck在此處使用的同一示例顯示Ruby是按值傳遞(他的定義),而我將用來顯示Ruby是按引用傳遞(我的定義)。將來,我將避免在Ruby中對按值傳遞/引用進行全面聲明,這似乎會使人們更加困惑。

慕尼黑5688855
TA貢獻1848條經驗 獲得超2個贊
是的,我完全理解為什么您會這樣稱呼。您對“按引用傳遞”的定義與現實世界中人們編程的方式更加相關。但不幸的是,我們被困在半個世紀的計算機科學文獻中,并且整個教育系統(tǒng)仍然使用舊的定義,因此,我認為讓人們知道“如果您閱讀“通過引用”一詞,可能不是在談論Ruby。”
- 3 回答
- 0 關注
- 636 瀏覽
添加回答
舉報
0/150
提交
取消