在 C 语言中,我们可以采用逗号语法实现连续的赋值语句
a = 1, b = 2, c = 3
但是在 Ruby 中,上述代码将产生语法错误,Ruby 最标准的连续赋值语句应该是
a, b, c = 1, 2, 3
我猜这种语法来自于a, b, c = [1, 2, 3]
,但是我觉得,如果右值不是数组,而是几个表达式,需要赋值的变量又较多,这种赋值方法远远没有 C 语言的方法来的清晰。
当然还有一种办法是
a = 1; b = 2; c = 3
这种方法在大部分情况下都 OK,但是由于用了分号,这句话相当于几句语句,如果把它放在 if,unless 语句中,就无法使用优美的后置语法,因为
a = 1; b = 2; c = 3 if condition?
中 if 条件满足与否只会控制是否执行最后一个变量的赋值语句。如果想要全部控制到所有语句,就不得不写成三行了,看上去就不够简洁了。 大家还有什么更好的策略没?更加简洁优雅清晰的语法?