2014-02-21 97 views

回答

5

真正的問題是,什麼確實Hash[x]評價

因爲它是在其上調用<<操作(其實是一個方法)該對象(一Array,也許?)。也就是說,Hash[x] << "string"是,不包括臨時變量,相當於t = Hash[x]; t << "string"

像所有overridable紅寶石運營商,<<真是只是一個方法調用。它通常被視爲Array#<<,但它可以是用於所討論的對象不同(見上文):

[上的陣列對象,則< <操作]追加-推在給定對象的端這個數組。該表達式返回數組本身,因此可以將幾個附加鏈接在一起。

一旦知道了實際物體,就可以在相應的文檔中查看操作員的細節。


的列表,請參閱list of ruby operators that can be overridden/implemented; 「純」運營商如=(非索引賦值)和,不能被重寫,並且不以相同的方式工作。

1

<<是一種通常也被別名爲append的方法。在Ruby中,您可以像調用其他方法一樣調用操作符方法:an_obj.<<(an_arg)是完全有效的語法。

通常,append方法將參數添加到接收方。如果接收者是一個數組,它會將參數添加到數組的末尾;如果它是一個字符串,它會將參數添加到字符串的末尾。

調用<<方法的副作用和返回值僅取決於方法在接收方對象的類中的實現。

相關問題