嘗試一個簡單的教程對紅寶石。在IRB中,當i型如下代碼Ruby注入方法奇怪的輸出
(1..10).inject{|memo,n| memo + n}
=>55 (correct calculation)
然而,當我鍵入以下內容:
(1..10).inject{|memo,n| memo + n*2}
=>109 (which should be 110)
計算變得錯誤。當Ruby執行注入方法時,似乎有什麼問題?
嘗試一個簡單的教程對紅寶石。在IRB中,當i型如下代碼Ruby注入方法奇怪的輸出
(1..10).inject{|memo,n| memo + n}
=>55 (correct calculation)
然而,當我鍵入以下內容:
(1..10).inject{|memo,n| memo + n*2}
=>109 (which should be 110)
計算變得錯誤。當Ruby執行注入方法時,似乎有什麼問題?
這是因爲在第一次assignes 1至備忘錄和2到n:
|memo, n| => memo = 1, n = 2
所以,當你在第一次簡單的ADD,將以1 + 2 = 3,則n經過休息數字。因此,n永遠不會成爲第一個數字。
這是沒有錯的。你在什麼意義上聲稱它是錯的?問題不明確。 – sawa
@sawa我認爲這是錯誤的,因爲在第一個代碼中,它是這樣做的: 備註= 0 備註+ = 1 備忘錄+ = 2 。 。 備忘錄+ = 10。 對於第二個代碼,一切應該是時間2. – Sydney