ruby - 如何用一行代码创建三个对象?

标签 ruby variable-assignment

我如何用一行代码创建三个空哈希值?

我知道 a = b = c = Hash.new 不会工作,因为它会创建对同一个 Hash 对象的三个引用。

a,b,c = Hash.new 会将 Hash 分配给 a,但是 bc 保持 nil

我知道我可以做 a, b, c = Hash.new, Hash.new, Hash.new,但这看起来不太干。

最佳答案

正如我作为评论发布的那样,我认为 a, b, c = {}, {}, {} 是最好的方式,因为它简短且易于阅读。如果你真的想以更复杂的方式来做,像这样的东西会起作用:

>> a, b, c = Array.new(3) { Hash.new } #=> [{}, {}, {}]
>> a #=> {}
>> b #=> {}
>> c #=> {}

关于ruby - 如何用一行代码创建三个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6401466/

相关文章:

ruby-on-rails - 转换 Rails ActiveRecord 时间戳的时区

c - 为什么这个赋值在函数之外不起作用?

ruby - 无法将 gem 推送到私有(private) gem 服务器

ruby - 从数组中的对象中删除实例变量

javascript - javascript x = y 在处理对象时如何工作?

java - 赋值的左侧必须是变量 CharAt

string - 如何解析/捕获由破折号分隔的字符串?

c# - 在结构中分配字段/属性

ruby - 正则表达式匹配 `99` 但不匹配 `!99`

ruby - Ruby 中的 0..size 和 0...size 有什么区别?