以下是具有初始化程序的类:
class MyUser
attr_reader :id
def initialize(parameters)
@id = parameters['id']
@login = parameters['login']
@balance = parameters['balance']
@info = parameters['info']
end
end
用法:
usr = MyUser.new(the_hash)
puts usr.inspect
检查的输出:
#<MyUser:0x3bcd318 @id="1", @login="TS1", @balance="0", @info="blah blah blah">
我希望MyUser
在检查时看起来像普通类,使用.id,.login,.balance和.info属性而不是@ id,@ login,@ balance和@info。怎么做?
答案 0 :(得分:1)
不确定您在寻找什么,inspect
正在做inspect
所做的事情。它不会为您调用方法,并且Ruby语言实际上没有“属性”,您只是使用attr_reader
为实例变量生成访问器方法。
如果你愿意,你当然可以覆盖inspect
方法,你的目标是什么?