如: arr=1,2,"hello" puts arr.class #out:Array 如果能这样定义数组,太方便了点,都不用写括号,不知道这样做可行不?
这是一个冷知识。虽然看起来不可思议,但确实可以,见 Implicit Array Assignment
a = 1, 2, 3
p a # prints [1, 2, 3]
不过谁真在项目里这么写肯定拉出去砍了。太不直观,容易误读。
[1] pry(main)> a, b = 1, 2
=> [1, 2]
[2] pry(main)> a
=> 1
[3] pry(main)> b
=> 2
[4] pry(main)>
一般是给这种用法用的。
不然你以为
a, b = 1, 2
是啥原理 之前还有人提 issue 希望 Ruby 能够增加像 JavaScript 一样的解构赋值,Matz 说太容易有语法二义性了,大概这也是语法糖太多的弊端吧