[Ruby笔记]17.Ruby attribute attr_reader attr_writer attr_accessor attr

本文详细介绍了Ruby中的属性方法家族,包括attr_reader、attr_writer及attr_accessor的使用方式,并通过实例展示了如何利用这些方法快速创建读取、写入及读写属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 :nameattr_reader :name
atrr :weight,trueattr_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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值