是否可以在一个语句中将相同的值附加到两个不同的数组中?例如,
a = [], b = []
a,b << 10
答案 0 :(得分:5)
如果你想保留不同的数组,那么我认为唯一的可能就是这样做:
a, b = a << 10, b << 10
显然,它不能满足只写一次值的要求。使用逗号,可以用数组表示法写入值。在赋值的左侧是两个值,它们可以使用长度为2的数组。
作业右侧的内容是什么?有两个以数组表示法写的值。评估后你可以写:
a, b = [[a], [b]]
# a <- [a]
# b <- [b]
或者,如果你对分号很好:
a << 10; b << 10;
答案 1 :(得分:4)
我会这样做:
[a,b].each { |arr| arr.push( 10 ) }
答案 2 :(得分:1)
这是如何使用initialize_copy
:
a=[]
b=[]
a.object_id # => 11512248
b.object_id # => 11512068
b.send(:initialize_copy,a << 10)
a # => [10]
b # => [10]
a.object_id # => 11512248
b.object_id # => 11512068
答案 3 :(得分:1)
a = [1,2]; b = [3]
a,b = [a, b].product([10]).map(&:flatten)
或
a,b = [a,b].zip(Array.new(2,10)).map(&:flatten)
或
a,b = [a,b].zip([10]*2).map(&:flatten)
#=&gt; a = [1, 2, 10]
,b = [3, 10]
这显然可以推广到任意数量的数组。
答案 4 :(得分:0)
不确定
a,b = [],[]
c = 10
a,b = a.push(c),b.push(c)
答案 5 :(得分:-2)
你可以这样做
a = b << 10
p a.inspect
p b.inspect
希望它能解决您的问题