attr_reader
创建只读
变量name
以及 sex
:
attr_reader :name, :sex
# 等价代码
def name
@name
end
def sex
@sex
end
attr_writer
创建只写
变量age
:
attr_writer :age
#
def age=(age)
@age = age
end
attr_accessor
创建读/写变量 weight
:
attr_accessor :weight
#
def weight
@weight
end
def weight=(weight)
@weight = weight
end
attr
attr :name 同 attr_reader :name
atrr :weight,true 同 attr_accessor :weight
true 参数可选,空着相当于只读,有就是读/写
in a Class
使用attribute的写法
class Test
attr_reader :name, :sex
attr_writer :age
attr_accessor :weight
def initialize(name, sex, weight)
@name = name
@sex = sex
@weight = weight
end
end
使用等价代码的写法
class Test
def initialize(name, sex, weight)
@name = name
@sex = sex
@weight = weight
end
# >>>>>>> attr_reader :name, :sex >>>>>>>
def name
@name
end
def sex
@sex
end
# >>>>>>> attr_reader :name, :sex >>>>>>>
# ---------- attr_writer :age -----------
def age=(age)
@age = age
end
# ---------- attr_writer :age -----------
# ********** attr_accessor :weight ********
def weight
@weight
end
def weight=(weight)
@weight = weight
end
# ********** attr_accessor :weight ********
end
reference
《The Well-Grounded Rubyist, Second Edition》
(https://www.manning.com/books/the-well-grounded-rubyist-second-edition)
3.4. Attributes and the attr_* method family
ぐぅぐぅ
(´~`)zzZ
┌◯─◯┐
│お昼寝│
└◯─◯┘
http://emoji.vis.ne.jp/ohirune.htm