哈希[x] <<"字符串"做什么?

use*_*130 1 ruby hash

怎么Hash[x] << "string"办?

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

use*_*740 5

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

因为它是调用运算符(实际上是一个方法)的那个对象(可能是一个数组?)<<.也就是说Hash[x] << "string",排除临时变量,相当于t = Hash[x]; t << "string".

像所有覆盖的Ruby运算符1一样,<<实际上只是一个方法调用.它通常被视为Array#<<,但对于有问题的对象可能有所不同(见上文):

[在Array对象上,<<运算符] Append-将给定对象推送到此数组的末尾.此表达式返回数组本身,因此可以将多个附加链接在一起.

一旦知道了实际对象,就可以在相应的文档中轻松查找操作符.


1请参阅可以为列表覆盖/实现的ruby运算符列表; "纯"运算符=(非索引赋值)并且, 不能被覆盖并且不能以相同的方式工作.