是一個對象,一切都在紅寶石?這包括Fixnum
s嗎?一切都是Ruby中的對象嗎?
7
A
回答
34
取決於你所說的「一切」是什麼。正如其他人已經證明的那樣。類也是類Class
的實例。方法,操作符和塊不是,但可以用對象包裝(Proc
)。簡單的任務不是,也不是。像while
這樣的聲明也不是也不能。後者顯然也有評論。
實際上重要的事情,即您希望操縱的東西是對象(或可以包裝在對象中)。
0
1
燁。
> Fixnum.is_a?(Object) #=> true
要查看繼承鏈:
> pp Fixnum.ancestors
[Fixnum,
Integer,
Precision,
Numeric,
Comparable,
Object,
...
Kernel]
=> nil
4
是。 Fixnum
是一類,它從Integer
繼承,它從Numeric
,其最終從Object
繼承繼承。
或者說,爲什麼你不問嗎? :)
1.is_a? Object # => true
1.class # => Fixnum
Fixnum.is_a? Object # => true
讀Ruby info和documentation在網站上是非常好的方法。
2
紅寶石doen't有任何原語(如int,焦炭等在Java),所以每一個值(任何可以坐在賦值語句的右側)是一個對象。但是,語言語法的控制語句,方法和其他功能不是。
4
實際上一切在Ruby是一個對象,具有控制結構的異常。無論是在方法,代碼塊還是操作符之下,它們都被表示爲對象,並且可以這樣認爲。
以一個碼塊,例如:
def what_is(&block)
puts block.class
puts block.is_a? Object
end
> what_is {}
Proc
true
=> nil
或爲一個方法:
class A
def i_am_method
"Call me sometime..."
end
end
> m = A.new.method(:i_am_method)
> m.class
Method
> m.is_a? Object
true
> m.call
"Call me sometime..."
和運營商(例如+, - ,[],< <)被實現爲方法:
class String
def +
"I'm just a method!"
end
end
對於第一次進入編程的人來說,這是什麼意思在ap從邏輯上講,所有適用於某種對象的規則都可以擴展到其他規則。您可以將您定義的字符串,數組,類,文件或任何類視爲以非常相同的方式運行。這是Ruby比其他語言更易於使用和使用的原因之一。
相關問題
- 1. 「一切都是對象」是好事嗎?
- 2. Ruby中的一切都可以在Rails中使用嗎?
- 3. 類或方法定義也是Ruby中的一個對象嗎?
- 4. 一切都是計劃中的列表嗎?
- 5. 類聲明是紅寶石的洗眼液嗎?一切是否都是面向對象的?
- 6. typeof new String(「aaa」)===「object」?一切都是一個對象,但是有原始類型?
- 7. 對象切片,有利嗎?
- 8. 對象切片有用嗎?
- 9. int是Java中的一個對象嗎?
- 10. Objective-C中的所有對象基本都是指針嗎?
- 11. 在Javascript中,所有內置對象都是不可變的嗎?
- 12. 一切都通過巴士嗎?
- 13. 是int []一個對象嗎?
- 14. 條件語句是Ruby中的對象嗎?
- 15. 在Java中,是一個char []對象嗎?
- 16. Heroku一切都是最新的
- 17. 每個比在Ruby中都慢嗎?
- 18. 是錯誤對象切片的原因嗎?
- 19. 爲什麼一切都不是黃金?
- 20. 每一個對象都應該有一個接口,並且所有對象都是鬆散耦合的?
- 21. 管理類時,一切都是相對於用戶在nhibernate(orm)
- 22. 這會導致對象切片嗎?
- 23. 從對象中切除一部分
- 24. Ruby中的字典對象
- 25. Ruby中的對象分配
- 26. 每個對象都應該有一個方法'addEventListener'嗎?
- 27. 檢查是否有鍵值中的對象都是假的
- 28. 符號是一個案例對象嗎?
- 29. 引用類型是一個對象嗎?
- 30. JSONRequest是一個全局JavaScript對象嗎?
我不認爲ruby中的方法可以像對象一樣對待。 – 2017-04-18 09:25:54