1

I know this questions has been touched on elsewhere, but I'm slightly confused about the proper syntax for multi-line (block?) if else statements in ruby.

As an example:

if condition then
  do something
  do somethingelse
  do yetanotherthing
  done
else
  do acompletelyunrelatedthing
done

I understand that the then statement is required if multiple lines are used, but is the done before the else necessary? This seems like it would break out of the if...else context. When I do include this done I get:

syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'

When I don't include it I get:

syntax error, unexpected keyword_else, expecting keyword_end

4

2 に答える 2

5

うーん… doneRubyにはキーワードがありません。正しい構文は次のとおりです。

if condition
  # do stuff
else
  # do other stuff
end

thenキーワードも必要ありません。

于 2013-04-21T22:44:15.287 に答える
0

このthenキーワードは、すべてを 1 行にまとめる必要がある場合にのみ使用されます (true の場合に実行するアクションから条件を分離するため)。

if condition then do_something else do_something_different end

すべてを1行にしたくない場合(通常は必要ありません)、構文はDoorknob's answerのとおりです。

于 2013-04-21T23:29:39.237 に答える