作者timeregorge (vincent)
看板Ruby
標題[問題] 兩個計算上的小問題
時間Sat May 31 22:37:43 2014
x = 1
x.odd? ? "no way!" : "yes, sir!"
請問為什麼輸出會是 no way?
中間的那個問號的用意是什麼呢?odd? ? <-後面的這個
另外
a = [2,4,6,8,10]
a[0,2].inject(3) { |sum,element| sum + element }
為什麼結果是9? 計算過程是怎麼算的呢?
謝謝回覆
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.232.233
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Ruby/M.1401547066.A.CA4.html
1F:→ robler:那個問號是一種命名慣例,代表這個function輸出的是布林值 05/31 22:40
2F:→ robler:所以x.odd?就可以知道他是一個判斷x是不是奇數的funcion 05/31 22:41
3F:→ robler:第二題你先去看看inject的用法 不然很難說明 05/31 22:43
4F:→ putumaxally:(條件判別式) ? (條件為真要回傳的值) : (條件為假要 05/31 22:49
5F:→ putumaxally:回傳的值) 05/31 22:49
謝謝樓上兩位的回答, 另外剛剛我看了一下a[0,2].inject(3)
0= 從第幾個數開始 2= 要輸出幾組數 (3)注入=2+3, 2+4+3 = 9
不知道這樣的理解有沒有錯誤呢?
※ 編輯: timeregorge (1.175.232.233), 05/31/2014 22:56:33
6F:推 putumaxally:不是 2+4+3 是 3+2+4 05/31 23:12
原來如此,謝謝您的講解
所以inject,加上去的順序是固定的,這部分我以為他是只要產生出來的結果
都是一樣的就好呢! 謝謝您的講解:)
※ 編輯: timeregorge (218.164.112.42), 06/03/2014 00:01:29