attr_reader, attr_writerの確認(Ruby)
なんとなく理解できるようになったとはいえ、「理解できました」というにはまだ遠い。
ということで、attr_writerはこうやって動くんだなーということを確認。
class Name attr_reader :user_name def initialize @user_name = "Tom" end end class Greet < Name attr_writer :user_name end a = Greet.new p a.user_name # "Tom" p a.user_name = "Thomas" # "Thomas"
class Name attr_reader :user_name def initialize @user_name = "Tom" end end class Hello < Name attr_writer :user_name def hello @user_name = "Ken" puts "Hello, #{@user_name}" end end b = Hello.new b.hello # Hello, Ken p b.user_name # "Ken" p b.user_name = "Bob" # "Bob"
attr_reader, attr_writerを使わずに書くとこうなる
class Name def initialize @user_name = "Tom" end def user_name @user_name end def user_name=(name) @user_name = name end end class Hello < Name def hello @user_name = "Ken" puts "Hello, #{user_name}" end end b = Hello.new b.hello # Hello, Ken p b.user_name # "Ken" p b.user_name = "Bob" # "Bob"
もうちょっと使いこなせるようになったらまたメモしにくる