前端之家收集整理的这篇文章主要介绍了
ruby – 如何使用散列键作为类上的方法?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个类和一个哈希.如何使用密钥作为
方法名称来
获取散列的成员动态地成为类的
方法?
class User
def initialize
@attributes = {"sn" => "Doe","givenName" => "John"}
end
end
例如,我想要有以下输出Doe:
u = User.new
puts u.sn
def method_missing(name,*args,&blk)
if args.empty? && blk.nil? && @attributes.has_key?(name)
@attributes[name]
else
super
end
end
说明:如果调用不存在的方法,那么将以方法名称作为第一个参数调用method_missing,然后调用给定方法的参数,如果给出了方法.
在上面我们说如果没有定义的方法被调用没有参数而没有块,并且哈希具有方法名称为key的条目,它将返回该条目的值.否则它会照常进行.
原文链接:https://www.f2er.com/ruby/273315.html