什麼時候Ruby自引用對象,什麼時候自引用到Ruby類?用例子來解釋會很棒。沒有得到我的頭在這附近。紅寶石自己在外行方面?
4
A
回答
5
類實際上是對象本身。假設我有一個類Person
,這實際上是Class
的一個實例。所以你可以自己引用Article的實例,或者你可以自己引用類的實例Article
。
在最簡單的例子,我能想到的:
class Person
def initialize
p "Info about Person Instance"
p self
p self.class
end
p "Info about Person Class"
p self
p self.class
end
person = Person.new
它打印:
"Info about Person Class"
Person
Class
"Info about Person Instance"
#<Person:0x0000010086cf58>
Person
想了解更多關於關於自我,I highly recommend read this.
2
我的理解是
- Environm您正在定義類方法或module_functions,
self
指的是類/模塊。 - 在您定義實例方法的環境中,
self
引用該實例。
例如,
class A
def method1
self # => instance of A
end
def self.method2
self # => class A
endu
def A.method3
self # => class A
end
end
class << A
def method4
self # => class A
end
end
module B
module_function
def method5
self # => module B
end
end
例外是instance_eval
,instance_exec
改變self
到接收器。
3
相關問題
- 1. 紅寶石自己放
- 2. 紅寶石自己的關鍵字
- 3. 把自己得到的紅寶石
- 4. 紅寶石散列在紅寶石
- 5. 亞行外殼和紅寶石
- 6. 紅寶石MatchData post_match意外行爲
- 7. 執行紅寶石
- 8. 紅寶石拉姆達方面
- 9. 在紅寶石
- 10. 在紅寶石
- 11. 在紅寶石
- 12. 在紅寶石
- 13. 在紅寶石
- 14. 在紅寶石
- 15. 在紅寶石
- 16. replica CSV.generate_line紅寶石的行爲1.8.7在紅寶石1.9.2
- 17. 紅寶石畫面清晰
- 18. 自定義as_json紅寶石
- 19. 紅寶石消息自
- 20. 寶石安裝紅寶石
- 21. 調試寶石紅寶石
- 22. Twitter的紅寶石寶石
- 23. 紅寶石寶石 - LoadError
- 24. 錯誤紅寶石寶石
- 25. 卸載紅寶石寶石
- 26. 紅寶石寶石文檔
- 27. 安裝自己的寶石
- 28. 紅寶石分配方法
- 29. 紅寶石要求方法
- 30. 紅寶石 - 方法問題
因爲類和模塊都是對象,'self'總是指當前目的。 – 2011-04-20 19:27:09