その1
attr_accessor :attr1, :attr2, :attr3# read/write
attr_reader :attr3, :attr4 # read-only
attr_writer :attr5 # write-only
: を使う宣言式共通の注意事項だが
attr_accessor: attr1
などとするとエラーになるので注意。
: は先頭の宣言にかかるのではなく各プロパティにかかるので、各プロパティごとに空白を挟まず先頭に : をつけないといけない。
@ をつけた同名のインスタンス変数に対してのアクセサとなる。
その2
# reader
def attr1
return @attr1
end
# writer
def attr1= (arg)
@attr1 = arg
end
任意の実装をしたい場合はこちらを使う。
毎回忘れるのでメモ。公式ドキュメント読みづらいっす。
参考:
<http://www.ruby-lang.org/ja/man/?cmd=view;name=FAQ%3A%3A%A5%E1%A5%BD
%A5%C3%A5%C9>
– Ruby 公式ドキュメント -> FAQ -> 5. メソッド