1. attr_accessor的用法相當簡單, 就相當於getter和setter,看一個類就知道怎樣用了:
- class Test
- attr_accessor :name
- def initialize()
- @name = "yanzilee9292"
- end
- end
- #test
- puts Test.new.name
保存這個類爲test.rb文件, 通過命令行運行 ruby test.rb, 會得到以下結果:
yanzilee9292
2. 如果我們把attr_accessor去掉, 該怎麼輸出name的值呢
- class Test
- def initialize()
- @name ="yanzilee9292"
- end
- #test
- puts Test.new.instance_eval {@name}
- end
可以看到, 用attr_accessor會把事情變得更加簡單
3. cattr_accessor和attr_accessor的區別
cattr_accessor就相當於java的類靜態變量, 對所有的類實例共享
- class Counter
- cattr_accessor :class_count
- attr_accessor :instance_count
- end
- counter1 = Counter.new
- counter1.instance_count = 1
- counter1.class_count = 1
- counter2 = Counter.new
- p counter2.instance_count
- #> nil
- p counter2.class_count
- #> 1