1
A
回答
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方法將參數添加到接收方。如果接收者是一個數組,它會將參數添加到數組的末尾;如果它是一個字符串,它會將參數添加到字符串的末尾。
調用<<
方法的副作用和返回值僅取決於方法在接收方對象的類中的實現。
相關問題
- 1. (1U << X)做什麼?
- 2. <<做什麼?
- 3. 「<%:」做什麼?
- 4. 什麼<<做在JavaScript
- 5. (x << 13)^ x是什麼意思?
- 6. 什麼是泛型語法的名稱:「X. <String,String> method()」
- 7. 爲什麼x <= x false?
- 8. <String,String>是什麼意思?
- 9. map <string,pair <string,foo * >>和map <string,pair <string,foo&>>有什麼區別?
- 10. ruby hash params = [] params << {:param =>:testString,type :: string}
- 11. 列表<string>和IEnumerable <String>有什麼區別?
- 12. 爲什麼我不能做列表<X<Long>>作爲列表的參數<X<?>>
- 13. cout << std :: ios :: hex做什麼?
- 14. C++:這個符號「<<」做什麼?
- 15. << - CONSTANT是做什麼的?
- 16. 「<< =」在sbt設置中做什麼?
- 17. 什麼>><<並做蟒蛇
- 18. 什麼意義 「×[] < - as.integer(X)」
- 19. Perl:<*>做什麼?
- 20. <()在Bash中做什麼?
- 21. 做HASH JOIN時什麼是HASH TABLE?
- 22. 爲什麼它不可能做Set <Object> =新TreeSet <String>
- 23. 爲什麼插入一組<vector <string>>這麼慢?
- 24. 有沒有人知道什麼<< =在做什麼javascript
- 25. 什麼是std :: cout << std :: cin做什麼?
- 26. Map <String,Map <String,Boolean >> myMap = new HashMap <String,HashMap <String,Boolean >>();
- 27. python3有什麼區別? <x>和python3。 <x> m
- 28. echo <<<輸出是做什麼的?
- 29. 如何使用LINQ減少<string,列出<string>>爲<string,string>?
- 30. combineLatest <{[id:string]:Book},string []>這是什麼?
x實際上只是一個字符串 – user3260130