【发布时间】:2011-06-19 08:55:22
【问题描述】:
如何用一行代码创建三个空哈希?
我知道a = b = c = Hash.new 不起作用,因为它会创建三个对同一个 Hash 对象的引用。
a,b,c = Hash.new 会将Hash 分配给a,但b 和c 仍然是nil。
我知道我可以做到a, b, c = Hash.new, Hash.new, Hash.new,但这看起来不太干。
【问题讨论】:
-
这三个哈希值必须来自某个地方。
-
@delnan 那么,创建一个类的多个实例没有捷径吗? :(
-
由于您的
Hash.new调用既不使用参数也不使用块,您可以将其缩短为a, b, c = {}, {}, {}。 -
可能有“克隆此 N 次”的表达式,它可以工作,但不会更短。如果你经常需要这个以成为一个问题,那么你可能做错了什么(例如,没有足够地使用集合)。
-
我只需要它一次,但我很好奇它是否可能。可能不会。 :(