アラフォーからのプログラミングとデザイン

大人から始めたプログラミングとデザインについてのあれこれ

【Ruby の復習】アクセスメソッドでつまづくので調べてみた。

また再び様々な復習をすることにしました。

simpledancer.hatenablog.com

ぶっちゃけ、ちょっとずつわかってきている部分もあれば、やったはずなのに忘れてる、もしくは全然理解できてなかったり、前は理解できたはずなのに全然意味不明だったりする。(痴呆症。。。??)

ということでrailsのチュートリアルを再度やる前に、TechacademyのRubyからまたやり直してみることにしました。

 

attr_accessorのところがいまいちよくわからない。

アクセスメソッドところでつまづきました。さらっと流してたところです。

"メソッド"という名前が着くと拒否反応が出ます。今更。

qiita.com

前も何度も読んだはずなんだけどいまいちわからなくていろいろ調べてみた。

www.rubylife.jp

対象となるインスタンス変数名に対して「attr_reader」「attr_writer」「attr_accessor」のいずれかを使って上記のように記述することでインスタンス変数の参照や更新用のメソッドを個別に定義する代わりとなります。

中略

「オブジェクト名.変数名」で参照したり更新したりが直接行えます。(クラス外からインスタンス変数が直接操作できるようになったわけではなく、参照や更新が行えるメソッドが自動的に作成されたと考えて下さい)

 その他参照した記事

Rubyのattr_accessor, attr_reader, attr_writerとは何か -- ぺけみさお

 

Techacademyの教材でやり直してみた

f:id:simpledancer:20170615115105p:plain

f:id:simpledancer:20170615115124p:plain

ここまでは大丈夫。

上記の追加したメソッドの代わりに、クラスにattr_accessorの後に変数を宣言することによって、自動的にインスタンス変数の値を参照したり、変更するメソッドを定義することができます。

”自動的にインスタンス変数の値を参照したり、変更するメソッドを定義することができます”

だそうなのです。(よくわかってない)

f:id:simpledancer:20170615115408p:plain

f:id:simpledancer:20170615115423p:plain

どうやら attr_accessorの後に変数を定義する

そうすると(この場合緯度を出すとすると)最初のスクショのようにいちいち宣言しなくても一気に値を返してくれる、ということであっているのでしょうか。

脳みそがちょっとわんわんしてきましたので中断してランチします!