2
A
回答
2
如果你引用的是真正的來源,那麼它缺乏準確性。在準確使用這些術語的情況下,這確實是矛盾的。
但是,人們(不正確)使用術語Module
來表示「Module
不是Class
」。在這個意義上,這大概是什麼意思,寫什麼是不矛盾的。
3
模塊可以有狀態,BRU
module Foo
@state = "a"
def self.state
@state
end
def self.stateful
@state = "b"
end
end
看!
Foo.state # a
Foo.stateful # b
Foo.state # b
4
哦兄弟,如果你忘記模塊/類的實例變量和模塊/類方法,你甚至不能說是類保持狀態 - 因爲它的持有狀態類的實例。類包含實例方法的列表。所以關於課程的整個部分在技術上也是錯誤的。
底線是紅寶石中99.99%的東西是對象,任何對象都可以保持狀態。類是對象(也是對象的生產者),模塊是對象(但不是對象的生產者),類的實例是對象。
我建議你不要擔心狀態。只是集中在該模塊能夠用於兩點的事實:
1)作爲名稱空間:
module MyFunctions
def MyFunctions.puts(str) #...or: def self.puts(str)
Kernel.puts "***" + str
end
end
puts 'hello'
MyFunctions.puts 'hello'
--output:--
hello
***hello
2)作爲包的方法包括,例如在一個類別:
module AnimalTricks
def speak
puts @noise
end
end
class Dog
include AnimalTricks
def initialize
@noise = "woof"
end
end
class Mouse
include AnimalTricks
def initialize
@noise = "sqeak"
end
end
Dog.new.speak
Mouse.new.speak
--output:--
woof
sqeak
相關問題
- 1. NSarray的矛盾
- 2. PEP8 Python3.3矛盾
- 3. 看似矛盾
- 4. 矛盾在LinuxShell
- 5. Javascript:typeof和instanceof結果矛盾?
- 6. 矛盾的錯誤?
- 7. 「haltingproblem」矛盾證明
- 8. 蝕:矛盾警告
- 9. 框架與中心矛盾
- 10. Ruby中的模塊和類
- 11. Coq矛盾的假設
- 12. 矛盾的MySqlReader錯誤
- 13. Ruby模塊和類
- 14. HOST_CACHED_BIT和HOST_COHERENT_BIT是否相互矛盾?
- 15. equals()和包含()看似矛盾
- 16. 跟蹤和if語句矛盾
- 17. mkdir,file_exists:混淆和矛盾錯誤
- 18. @NotNull和@Nullable,矛盾Java註釋
- 19. 矛盾與emberjs和jQuery使用didInsertElement
- 20. 爲什麼curl_multi_select和curl_multi_info_read相互矛盾?
- 21. IPv4校驗和與wireshark相矛盾
- 22. UIAlertView與UIActivityIndicator矛盾
- 23. 矛盾輸出在Python
- 24. 矛盾OWASP CORS建議
- 25. 似乎矛盾typechecks在Idris
- 26. 看似矛盾|:工作
- 27. 優先隊列矛盾
- 28. 函數定義矛盾
- 29. JLS似乎自相矛盾
- 30. 減少語法中的矛盾
*朋友*我有一個疑問。你能幫我嗎 ?我沒有看到[File#ctime](http://www.ruby-doc.org/core-2.0.0/File.html#method-i-ctime)和[File#mtime](http ://www.ruby-doc.org/core-2.0.0/File.html#method-i-mtime)。你可以幫幫我嗎 ? :) –