2012-02-23 5 views
0

instance_varaible_set/instance_variable_getまたはattr_writer/attr_readerの中からオブジェクトのインスタンス変数にアクセスする必要がある状況はありますか?彼らはスピードの点でどのように異なっていますか?instance_variable_set/vs attr_writer/readerを取得する

インスタンス変数にエンドユーザーに公開されたメソッドをアクセスさせたい場合は、簡単にするためにattr_writer/attr_readerを使用する必要がありますが、個人的に使用する場合は、 instance_varaible_set/instance_variable_get。このことは正しいのでしょうか?

答えて

1

これは正しいです。クラス定義内にattr_accessor/attr_reader/attr_writerを定義して、それらが(暗黙的または明示的に作成された)インスタンス変数にアクセスできるようにします。

クラスが作成されておらず、そのようなアクセサが存在しない場合でも、instance_variable_get/instance_variable_setを使用してプライベートインスタンス変数を読み書きできます。

+0

私は実際にプロファイラを実行しましたが、instance_varaible_set/instance_variable_getが少し遅くなっているようです。 – sawa

関連する問題