ruby – 如何使用散列键作为类上的方法?
发布时间:2020-12-16 20:24:17 所属栏目:百科 来源:网络整理
导读:我有一个类和一个哈希.如何使用密钥作为方法名称来获取散列的成员动态地成为类的方法? class User def initialize @attributes = {"sn" = "Doe","givenName" = "John"} endend 例如,我想要有以下输出Doe: u = User.newputs u.sn 解决方法 def method_missi
我有一个类和一个哈希.如何使用密钥作为方法名称来获取散列的成员动态地成为类的方法?
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的条目,它将返回该条目的值.否则它会照常进行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |