Rubyのクラスメソッドとタイプメソッドの違いは何ですか?私はそのタイプがいくつかのクラスのタイプを見つけるために働くのに気付きましたが、他のクラスは見つけられませんでした。Rubyのclass()とtype()の比較
40
A
答えて
48
重要な違いは、Object#type
は推奨されていません。オブジェクト#タイプのRDocから:
Object#classの非推奨同義語。
あなたがObject#class
を使うべき理由はここにあります:Rubyで オブジェクトの型だけ緩く、そのオブジェクトに関連付けられ あるよう
は、オブジェクト#型好ま今 、OBJのクラスを返します。クラス。この メソッドは、明示的受信者 で呼び出される必要があります。クラスはRubyの 予約語です。
実際には、多くの場合、オブジェクトのクラスを確認する代わりにObject#respond_to?
を使用することをお勧めします。
15
#type
は#class
の同義語ですが、それはruby 1.8では廃止されており、明らかにruby 1.9から消えています。どこでも#class
を使用してください。
# For ruby 1.8 $ ri Object#type ------------------------------------------------------------ Object#type obj.type => class ------------------------------------------------------------------------ Deprecated synonym for Object#class. # For ruby 1.9 $ ri1.9 Object#type Nothing known about Object#type
関連する問題
- 1. ファイル比較.class Bejond比較4
- 2. .javaファイルと.classファイルの比較
- 3. Rubyのハッシュ配列の比較とソート
- 4. Rubyの場合と===タイプの比較
- 5. RubyのNoMethodError比較ステートメント
- 6. Ruby/Railsのファジー比較
- 7. RubyのActiverecordクエリーを範囲と比較
- 8. rubyとSqlite3 dbの文字列比較
- 9. ruby rspecと文字列の比較
- 10. Magento 1.6.1:typeとtype_id、カテゴリとcategory_idsの比較
- 11. LinqToEntityクエリでEntityCollection <Class>を比較
- 12. EnumとClass、ベストプラクティスを比較しますか?私のプログラムで
- 13. iPhone iOS Classオブジェクトと別のクラスオブジェクトを比較する方法は?
- 14. Rubyでのメソッドの理解とJavaScriptの比較
- 15. 2つの文字列の長さをRubyと比較する
- 16. フロントエンドの自動化javascriptとJavaまたはRubyの比較
- 17. 比較のためにmatplot type = "b"を使用
- 18. Googleアナリティクスとリアルタイムアナリティクスの比較:ChartbeatとClickyとMixpanelの比較
- 19. ruby keep_if配列と文字列の比較
- 20. PythonのRubyと比較した処理リスト
- 21. RubyでBigOを2つの配列と比較する方法
- 22. rubyファイルの内容と文字列を比較する
- 23. Rubyでタイムスタンプを比較する方法
- 24. MySQLの比較と '%'
- 25. OrElseとの比較
- 26. プライベートインターフェイスとの比較
- 27. ViewStateとクッキーとの比較対キャッシュの比較
- 28. 比較条件と比較条件
- 29. [aClass class]と[bClass class]を比較するのに、==または!=を使用できますか?
- 30. モンテカルロ法と進化的アルゴリズムの比較と比較
同義語の場合、自分で定義したクラスで型を呼び出すと、定義されていないメソッドエラーが発生するのはなぜですか?同じクラスのクラスメソッドを呼び出すと、同じことは起こりません。未定義のメソッドエラーは、非推奨のメソッドの場合のようには聞こえません。 –
@Chris Collins私の推測では、ドキュメントはオフであり、厳密な同義語ではないということです。 PointはObject#typeが使用されていないメソッドであることが変わりません。 – runako
なぜrespond_toを使用しますか? –