谁能解释一下这行ruby代码的作用?

时间:2012-10-03 02:50:33

标签: ruby

Ruby style guide

中找到
1 > 2 ? true : false; puts 'Hi'

我认为这总是会返回Hi,但我该如何阅读呢?

6 个答案:

答案 0 :(得分:3)

如果1> 2然后是真的,否则就是假的。

但是,无论条件结果如何,都会打印hi

与以下内容相同:

if 1 > 2 then
  true
else
  false
end
puts 'hi'

答案 1 :(得分:2)

你可能会读到这个

1 > 2 ? true : false # first line of code
puts "Hi"  #second line of code

答案 2 :(得分:0)

Ruby编译器按如下方式读取它:

1.>( 2 )
puts "Hi"

三元运营商? :多余。比较'大于'符号:>实际上是一种数字类的方法。

答案 3 :(得分:0)

如果1大于2则为true,否则为false。 然后把Hi

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

答案 4 :(得分:0)

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

1 > 2 ? true : false
puts "Hi"

相当于

false
puts "Hi"

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

答案 5 :(得分: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