我不明白為什么他們說 Ruby按值傳遞所有參數(shù),同時以下代碼證明了相反的情況: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貢獻(xiàn)1876條經(jīng)驗 獲得超5個贊
同意100%。有趣的是,Chuck在此處使用的同一示例顯示Ruby是按值傳遞(他的定義),而我將用來顯示Ruby是按引用傳遞(我的定義)。將來,我將避免在Ruby中對按值傳遞/引用進(jìn)行全面聲明,這似乎會使人們更加困惑。

翻翻過去那場雪
TA貢獻(xiàn)2065條經(jīng)驗 獲得超14個贊
是的,我完全理解為什么您會這樣稱呼。您對“按引用傳遞”的定義與現(xiàn)實世界中人們編程的方式更加相關(guān)。但不幸的是,我們被困在半個世紀(jì)的計算機(jī)科學(xué)文獻(xiàn)中,并且整個教育系統(tǒng)仍然使用舊的定義,因此,我認(rèn)為讓人們知道“如果您閱讀“通過引用”一詞,可能不是在談?wù)揜uby?!?/p>
- 3 回答
- 0 關(guān)注
- 623 瀏覽
添加回答
舉報
0/150
提交
取消