[問題] 兩個計算上的小問題

看板Ruby作者 (vincent)時間10年前 (2014/05/31 22:37), 10年前編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/2 (看更多)
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://www.ptt.cc/bbs/Ruby/M.1401547066.A.CA4.html

05/31 22:40, , 1F
那個問號是一種命名慣例,代表這個function輸出的是布林值
05/31 22:40, 1F

05/31 22:41, , 2F
所以x.odd?就可以知道他是一個判斷x是不是奇數的funcion
05/31 22:41, 2F

05/31 22:43, , 3F
第二題你先去看看inject的用法 不然很難說明
05/31 22:43, 3F

05/31 22:49, , 4F
(條件判別式) ? (條件為真要回傳的值) : (條件為假要
05/31 22:49, 4F

05/31 22:49, , 5F
回傳的值)
05/31 22:49, 5F
謝謝樓上兩位的回答, 另外剛剛我看了一下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

05/31 23:12, , 6F
不是 2+4+3 是 3+2+4
05/31 23:12, 6F

05/31 23:58, , 7F
原來如此,謝謝您的講解 所以inject,加上去的順序是固定的,這部分我以為他是只要產生出來的結果 都是一樣的就好呢! 謝謝您的講解:) ※ 編輯: timeregorge (218.164.112.42), 06/03/2014 00:01:29
文章代碼(AID): #1JYUawoa (Ruby)
文章代碼(AID): #1JYUawoa (Ruby)