6
刚才看到在一些Ruby代码是这样的:使用在Ruby中,逗号后跟等号的含义是什么?
def getis;gets.split.map(&:to_i);end
k,=getis # What is this line doing?
di=Array::new(k){Array::new(k)}
刚才看到在一些Ruby代码是这样的:使用在Ruby中,逗号后跟等号的含义是什么?
def getis;gets.split.map(&:to_i);end
k,=getis # What is this line doing?
di=Array::new(k){Array::new(k)}
它指定数组的第一个元素Ruby的multiple assignment:
a, = [1, 2, 3]
a #=> 1
或者:
a, b = [1, 2, 3]
a #=> 1
b #=> 2
可以使用*
取回其余元素:
a, *b = [1, 2, 3]
a #=> 1
b #=> [2, 3]
或者:
*a, b = [1, 2, 3]
a #=> [1, 2]
b #=> 3
它的工作原理是这样的。如果lhs
具有单个元素并且rhs
具有多个值,则lhs
被赋值为一个数组,如下所示。
a = 1,2,3 #=> a = [1,2,3]
而如果lhs
具有比rhs
以上的元素,然后在过量lhs
元件被丢弃
a,b,c = 1,2 #=> a = 1, b = 2, c = nil
因此
a, = 1,2,3 #=> a = 1
。其余的[2,3]被丢弃
很好解释..与其他选项1+ – 2014-11-21 09:36:58