ruby - Hash[x] << "string"是做什么的?

标签 ruby hash

什么是Hash[x] << "string"做什么?

符号是什么<<它是如何工作的?

最佳答案

真正的问题是, Hash[x] 做了什么? 评估到?

因为它是 那个对象(一个 Array,也许?),<< 就在上面运算符(实际上是一种方法)正在被调用。即 Hash[x] << "string"是,不包括临时变量,相当于t = Hash[x]; t << "string" .

喜欢所有overridable Ruby 运算符1<<实际上只是一个方法调用。它通常被视为 Array#<< , 但对于所讨论的对象可能有所不同(见上文):

[On an Array object, the << operator] Append—Pushes the given object on to the end of this array. This expression returns the array itself, so several appends may be chained together.

一旦知道实际对象,就可以在适当的文档中轻松查找运算符。


1 参见 list of ruby operators that can be overridden/implemented一份 list ; “纯”运算符,如 = (非索引分配)和 , 不能被覆盖并且不能以相同的方式工作。

关于ruby - Hash[x] << "string"是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21925510/

相关文章:

ruby-on-rails - 我如何跳过前三行而不是 FasterCSV 中的第一行

ruby-on-rails - Ruby on Rails - 数组中的 Validates_inclusion_of

mySQL:获取每一行的哈希值?

ruby - 在ruby中减去两个相同散列中的值

ruby - 是否可以在 c 扩展中编码解释的 ruby​​ 代码数据以加快加载时间?

ruby-on-rails - 在 CentOS 6.4 上以离线模式使用 Rvm 安装 Ruby on Rails

arrays - 在 Ruby 的哈希数组中找到最大值

javascript - 在javascript中获取DOM元素哈希?

ruby - Ruby 的 block 语法的起源是什么?

ruby - 如何使用 Rspec 测试包含哈希数组的哈希中是否存在键