我可以在Ruby的if / else中使用大括号吗?

时间:2010-09-14 17:25:45

标签: ruby

为什么我不能在if / else构造中使用大括号?我离开了Python,因为我觉得不能轻易地缩进语句。

这在Ruby中也是这样吗?

例如,我可以写这样的东西吗?

if token == "hello" {
  puts "hello encountered"
  # lots of lines here
}

有没有办法使用花括号来做到这一点?我还阅读了有关块的内容,但不确定如何在if / else表达式中使用它们。

3 个答案:

答案 0 :(得分:15)

您不能使用花括号,但缩进也无关紧要。 Ruby使用end关键字代替结束括号。

if token == "hello"
  puts "hello encountered"
  # lots of lines here
end

我仍然建议谨慎缩进,但即使正确使用大括号,糟糕的缩进代码也会欺骗人类读者。

答案 1 :(得分:13)

这很可爱:

def my_if(condition, &block)
    block.call if condition
end

使用如下:

my_if(token == "hello") { 
    puts "hello encountered!" 
}

答案 2 :(得分:4)

不。您需要使用end而不是}