任何人都可以解釋通過self.attribute
和@attribute
訪問實例屬性之間的區別嗎?直接訪問實例變量與使用訪問器方法
77
A
回答
97
self.attribute
調用方法attribute
。
self.attribute = value
使用參數value
調用方法attribute=
。
@attribute
和@attribute = value
獲取/設置實例變量的值@attribute
。
所以基本上他們是兩個完全不同的東西。
但是如果你調用attr_accessor :attribute
它定義的方法attribute
返回@attribute
和方法attribute=(value)
設置@attribute = value
。所以在這種情況下,沒有區別。
1
「訪問實例變量是直接用比存取方法訪問它們快約兩倍」
時退房:http://greyblake.com/blog/2012/09/02/ruby-perfomance-tricks/
相關問題
- 1. 直接訪問實例變量
- 2. 無法與擴展方法來訪問實例變量和λ
- 3. Ruby實例變量訪問
- 4. Python - 實例變量訪問
- 5. 訪問類實例變量
- 6. Java訪問實例變量
- 7. 訪問實例變量
- 8. 訪問實例變量
- 9. 實例變量「變量」類方法錯誤訪問
- 10. Objective-C實例變量訪問器方法
- 11. Python類,實例變量和訪問器方法
- 12. 方法鏈接和訪問變量
- 13. 訪問方法和變量
- 14. 動態添加實例方法無法訪問類變量
- 15. Tk DSL無法訪問實例方法和變量?
- 16. Rspec私有方法無法訪問類實例變量?
- 17. 直接訪問get/post變量而不顯式訪問$ _GET/$ _POST
- 18. 類方法代碼應該直接訪問外部變量嗎?
- 19. python:使用包含變量的名稱訪問實例變量
- 20. 使用Minitest訪問控制器實例變量
- 21. Java訪問摘要實例變量
- 22. Java實例變量可訪問性
- 23. 訪問模塊實例變量
- 24. 從javascript訪問實例變量
- 25. 訪問實例變量的值scala
- 26. 在Ruby中訪問實例變量
- 27. 廣東話訪問實例變量
- 28. 實例變量不可訪問
- 29. Rails + Vue:訪問實例變量
- 30. 訪問父類實例變量
需要注意的是,通常建議使用`self.`(除非你編寫getter/setter方法),即使你現在擁有`attr_accessor`。這可以保護您免受額外的重構工作和錯誤的影響,如果您稍後將訪問方法更改爲不僅僅是獲取/設置實例變量。 (或者如果其他人爲你的工作提供補丁或子類) – Phrogz 2011-01-09 15:03:30