【发布时间】:2021-12-08 00:41:24
【问题描述】:
我正在初始化一个这样的字符串向量
mask = fill(fill(' ', maxx), maxy)
然后通过设置单个元素来填充它:
mask[y][x] = '·'
这不起作用:我得到maxy 次相同的字符串。我猜外部fill 只是创建了一个指向由内部fill 创建的Vector 的指针列表(documentation of fill! 明确地证实了这一点)。我应该怎么做?
【问题讨论】:
我正在初始化一个这样的字符串向量
mask = fill(fill(' ', maxx), maxy)
然后通过设置单个元素来填充它:
mask[y][x] = '·'
这不起作用:我得到maxy 次相同的字符串。我猜外部fill 只是创建了一个指向由内部fill 创建的Vector 的指针列表(documentation of fill! 明确地证实了这一点)。我应该怎么做?
【问题讨论】:
一种解决方案是使用这样的列表推导:
mask = [fill(' ', maxx) for y in 1:maxy]
(但我仍然有兴趣了解fill 是否有解决方案。)
【讨论】:
fill 的解决方案),因为fill 的部分文档本身说“如果 x 是对象引用,所有元素都将引用同一个对象”,没有关于例外情况或改变它的选项的进一步说明。