【发布时间】:2017-11-22 07:21:18
【问题描述】:
这行得通:
foo, bar = 1, 2
foo == 1 #true
bar == 2 #true
这也有效:
baz = true
foo = baz ? 1 : 2
foo == 1 #true
这不起作用:
foo, bar = baz ? 1, 2 : 3, 4
# SyntaxError: (irb):4: syntax error, unexpected ',', expecting ':'
# foo, bar = baz ? 1, 2 : 3, 4
# ^
应该如何格式化才能正常工作?
【问题讨论】:
-
当解析第三个表达式中的第一个逗号时,会引发异常
"syntax error, unexpected ',', expecting ':'"。那是因为1, 2不是 Ruby 对象。 -
@AryaMcCarthy,好问题。我忘了包括错误响应。感谢编辑我的问题的人:)
-
另外,
unexpected ','很可能只是 Ruby 尽其所能识别缺陷。我在下面概述了更正的语法。
标签: ruby-on-rails ruby variable-assignment ternary-operator