Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多行if-else ruby_Ruby_If Statement_Block - Fatal编程技术网

多行if-else ruby

多行if-else ruby,ruby,if-statement,block,Ruby,If Statement,Block,我知道这个问题在其他地方也提到过,但我对ruby中多行(block?if-else语句的正确语法有点困惑 例如: if condition then do something do somethingelse do yetanotherthing done else do acompletelyunrelatedthing done 我知道如果使用多行,则需要then语句,但是在else之前是否需要done?这似乎会打破if…else上下文。当我包含此完成时我得到: 语法错

我知道这个问题在其他地方也提到过,但我对ruby中多行(block?
if-else
语句的正确语法有点困惑

例如:

if condition then
  do something
  do somethingelse
  do yetanotherthing
  done
else
  do acompletelyunrelatedthing
done
我知道如果使用多行,则需要
then
语句,但是在
else
之前是否需要
done
?这似乎会打破
if…else
上下文。当我包含此
完成时
我得到:

语法错误,意外的“\n”,应为tCOLON2或“[”或“.”

当我不包括它时,我得到:


语法错误,意外的关键字\u else,需要关键字\u end

嗯…Ruby中没有
done
关键字。以下是正确的语法:

if condition
  # do stuff
else
  # do other stuff
end

then
关键字也不需要。

嗯……Ruby中没有
done
关键字。以下是正确的语法:

if condition
  # do stuff
else
  # do other stuff
end

then
关键字也不需要。

仅当您需要将整件事放在一行时才使用
then
关键字(如果为真,则将条件与要采取的行动分开):


如果您不想将所有内容都放在一行中(通常您不想),语法与DoorKnop的答案相同。

如果您需要将整个内容放在一行中,则只使用
关键字(如果为true,则将条件与要采取的操作分开):


如果你不想把所有的东西都放在一行(通常你不想)注意,
#do stuff
是一个注释,用你想要执行的代码替换。
#do stuff
是一个注释,用你想要执行的代码替换。
然后
是一行的,这是正确的,但是,从风格上来说,我们不写if/else语句n一行。对于简单版本,使用三元语句,否则将其拆分为单独的行。
then
用于一行是正确的,但是,从风格上讲,我们不在一行上编写if/else语句。对于简单版本,使用三元语句,否则将其拆分为单独的行。