【发布时间】:2019-02-03 18:11:06
【问题描述】:
我做到了:
a, b = Array.new(2, [0, 0])
a[0] = 1
我有:
a # => [1, 0]
b有问题,和a一样:
b # => [1, 0]
问题是参考地址。
帮我在一行中初始化数组。
【问题讨论】:
-
你想通过在一行中编写所有代码来实现什么?
-
a, b = Array.new(2) { [0, 0] }. -
附带说明,如果您在任何类型的大型循环中执行此操作,您应该自己手动创建两个数组。否则,当你只需要两个数组时,你最终会创建三个数组,而且在大循环中使用时,垃圾回收的代价是昂贵的。
-
我会写两行:
a = [0, 0]和b = [0, 0]- 更容易阅读而且没有开销。 -
@Stefan 对于新开发人员来说,可读性比保存的几行代码更有价值(最?)。去过那里,做到了:)