0

可在Ruby 样式指南中找到。

1 > 2 ? true : false; puts 'Hi'

我假设这总是返回Hi,但我该如何阅读它?

4

6 回答 6

3

如果 1 > 2 则为真,否则为假。

但是,它将打印hi任何条件结果。

相同的是:

if 1 > 2 then
  true
else
  false
end
puts 'hi'
于 2012-10-03T02:57:09.117 回答
2

您可能会像这样阅读

1 > 2 ? true : false # first line of code
puts "Hi"  #second line of code
于 2012-10-03T02:58:22.743 回答
0

1 > 2 ? 真假; 放“嗨”这意味着

if 1 > 2 
  return true
else
  return false
end
puts "Hi"

这里每次都意味着结果是打印“hi”的结果,因为我们在条件之外打印“Hi”。

if 1 > 2
 puts "1 is not greater than 2"
else
 puts "1 is greater than 2"
end

你也可以在你的控制台中测试

1.9.3p125 :002 > if 1 > 2
1.9.3p125 :003?>   puts "1 is not greater than 2"
1.9.3p125 :004?>   else
1.9.3p125 :005 >     puts "1 is greater than 2"
1.9.3p125 :006?>   end
1 is greater than 2
 => nil 
于 2012-10-03T10:24:08.540 回答
0

分号是分隔两行代码的内联方式。所以就像

1 > 2 ? true : false
puts "Hi"

这相当于

false
puts "Hi"

当然,只说一行false什么都不做(除了少数情况,比如如果它是函数定义的最后一行,在这种情况下,如果到达该行,该方法将返回 false)。

于 2012-10-03T04:52:53.913 回答
0

Ruby 编译器是这样读取的:

1.>( 2 )
puts "Hi"

三元运算符 ? : 是多余的。比较“大于”符号 :> 实际上是 Numeric 类的一种方法。

于 2012-10-03T02:55:54.527 回答
0

如果 1 大于 2 则为真,否则为假。然后放嗨

http://buddylindsey.com/c-vs-ruby-if-then-else/

于 2012-10-03T02:58:30.550 回答