作者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/cn.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