これらのクラスの違いは何ですか?その目的の違いは何ですか?RubyのObjectとBasicObjectの違いは何ですか?
37
A
答えて
55
BasicObjectはRuby 1.9に導入され、Objectの親です(したがって、BasicObject
はRubyのすべてのクラスの親クラスです)。
BasicObject
は、それ自体にはほとんどのメソッドを持っていない:
::new #! #!= #== #__id__ #__send__ #equal? #instance_eval #instance_exec
BasicObjectは、委任のようなプロキシオブジェクトを Rubyのオブジェクト階層の独立したオブジェクト階層を作成するために使用することができますクラス、または Rubyのメソッドとクラス012からの名前空間汚染は避けなければなりません。
BasicObjectは、(プットのようなメソッドのための)カーネルと BasicObjectは、標準ライブラリの名前空間の外でそう 共通クラスは、完全なクラスパスを使用せずに見つけることはありませんが含まれていません。 機能がグローバルにアクセス可能な組み込みのカーネルを作るカーネルモジュールで
オブジェクトミックス、。オブジェクト のインスタンスメソッドは、カーネルモジュールで定義されているが...
あなたがObject
の方法を必要としない、あなたがそうでなければ、それらを未定義ならばあなたは場合に、オブジェクトの親としてBasicObject
使用することができます。
# when you inherit Object
class Tracer
instance_methods.each do |m|
next if [:__id__, :__send__].include? m
undef_method m
end
# some logic
end
# when you inherit BasicObject
class Tracer < BasicObject
# some logic
end
関連する問題
- 1. Object obj = Object()とObject obj()の違いは何ですか?
- 2. "type as object"と "((type)object"の違いは何ですか?
- 3. RubyのObject#taintとObject#trustメソッドは何ですか?
- 4. Scalaでは、AnyとObjectの違いは何ですか?
- 5. __repr__メソッドのselfとobjectのパラメータの違いは何ですか?
- 6. C#の `new object()`と `new {}`の違いは何ですか?
- 7. RubyとRuby on Railsの違いは何ですか?
- 8. RubyとRuby on Railsの違いは何ですか?
- 9. Rubyでは、String()と#to_sの違いは何ですか?
- 10. Ruby on Railsでのセレンとカピバラの違いは何ですか?
- 11. C++でruby `Object#freeze`コレスナーとは何ですか?
- 12. rubyのstring.split( "、" -1)とstring.split( "、"、 - 4)の違いは何ですか?
- 13. Rubyの `Fixnum`と` 3`の違いは何ですか?
- 14. rubyのkeyword_endとend-of-inputの違いは何ですか?
- 15. Rubyのputメソッドとwriteメソッドの違いは何ですか?
- 16. RubyのString.newと文字列リテラルの違いは何ですか?
- 17. .NET/JavaとRubyのドメインモデリングの主な違いは何ですか?
- 18. Rubyのdupとcloneの違いは何ですか?
- 19. Ruby on Railsの@userとuserの違いは何ですか?
- 20. ArrayList <?>、ArrayList、ArrayList <Object>の違いは何ですか?
- 21. IntelliJ + Ruby PluginとRubyMineの大きな違いは何ですか?
- 22. JRuby on RailsとRuby on Railsの違いは何ですか?
- 23. Ruby on rails:respond_toとrespond_withの違いは何ですか?
- 24. RackとRails Metal(Ruby)の違いは何ですか?
- 25. ObjectとValueTypeクラスで実装されたGetHashCodeの違いは何ですか?
- 26. Rubyでは、RVM、Bundler、Rakeの違いは何ですか?
- 27. JavaのObjectクラスとは何ですか?
- 28. 通常の変数とRubyのインスタンス変数との違いは何ですか?
- 29. Rubyで 'Object'という名前のクラス
- 30. Rubyでのobj.to_iとInteger(obj)の使用の違いは何ですか?
ドキュメントは最初の部分に答えます。 BasicObjectは機能が少なく、Objectメソッドの束を削除してしまうとObjectの代わりに使うことができます。 –