4
A
回答
5
在Ruby中,foo[bar, baz]
只是爲foo.[](bar, baz)
語法糖。所有你需要的是一種名爲[]
的方法。
順便說一句:你只需要看看文檔,例如爲Set
:
[](*ary)
創建包含該給定對象的新集合。
這就是那裏的文檔。
基本上,所有你需要的是
class Foo
def self.[](*args, &block)
new(*args, &block)
end
end
2
class X
attr_accessor :contents
def self.[](*x)
obj = self.new
obj.contents = x
obj
end
end
5
是的,因爲[]
和[]=
只是方法,它們可以被覆蓋。
你可以嘗試這樣的事:
class MyArray
attr_accessor :data
def self.[](*values)
obj = MyArray.new
obj.data = values
return obj
end
end
相關問題
- 1. 語言特徵正交?
- 2. 自然語言處理 - 將文本特徵轉換成特徵向量
- 3. 什麼是自然語言處理中的特徵生成器
- 4. 在keydown事件得到性格特徵在不同的語言
- 5. 什麼特徵使程序員將語言設想爲美麗?
- 6. 面向對象編程語言中的關係特徵
- 7. Java語音生物特徵
- 8. 語言語法的特徵是什麼定義它將被解釋或編譯?
- 9. Intellij IDEA Ruby語言級別
- 10. Ruby語言的Vim語法高亮1.9
- 11. 與C#相比,Ruby會突出哪些語言特性?
- 12. Ruby DSL(域特定語言)存儲庫,示例
- 13. 爲什麼Ruby on Rails稱爲域特定語言?
- 14. 特定語言的語境語法
- 15. 特徵
- 16. factory_girl特徵的速記塊語法
- 17. 使用語音的生物特徵 - Android
- 18. 分類詞語包 - 特徵vs像素
- 19. 有Scala和谷歌「轉到」語言(由功能特徵)之間的比較?
- 20. [R特徵值/特徵向量
- 21. 帶有bagof特徵的SIFT特徵
- 22. cvBlobsLib的特徵向量和特徵值
- 23. cvBlobsLib的特徵向量和特徵值
- 24. 表徵軌跡的特徵
- 25. 域特定語言IDE
- 26. JSON獲取特定語言
- 27. F# - 領域特定語言
- 28. 語言特定輸入RubyMine
- 29. 與特定語言環境
- 30. 模式拉斯特語言
作爲邊注,'數組[1,2,3]'將調用'陣列。[]',但'數組[1,2,3] '(在'y'後面有一個空格)將會調用'Kernel#Array'。 –
Avdi Grimm在[此評論](http://blog.mojotech.com/post/38317154050#comment-746181678)中描述了像'Kernel#Array'這樣的方法作爲「轉換函數」。 –