irb(main):012:0> class Redh irb(main):013:1> attr_accessor :names irb(main):014:1> def initialize(names) irb(main):015:2> @names = names irb(main):016:2> end irb(main):017:1> def names irb(main):018:2> puts "自定义的 names 函数!" irb(main):019:2> end irb(main):020:1> end => :names irb(main):021:0> Rchina = Redh.new("rb") => # irb(main):022:0> Rchina.names 自定义的 names 函数!
当时我想,attr_accessor :names 就是相当于自动创建了查询变数和修改变数的方法,我想如果自己手动又创建一个,到底是 Ruby 以哪个为准捏?从测试结果来看,好像是自己定义的为准,覆盖了的样子,就好像重新定义类中的同名函数会被覆盖一样,感觉 Ruby 好好玩~~睡觉!!!