为什么我不能在if
/ else
构造中使用大括号?我离开了Python,因为我觉得不能轻易地缩进语句。
这在Ruby中也是这样吗?
例如,我可以写这样的东西吗?
if token == "hello" {
puts "hello encountered"
# lots of lines here
}
有没有办法使用花括号来做到这一点?我还阅读了有关块的内容,但不确定如何在if
/ else
表达式中使用它们。
答案 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
而不是}
。