Ruby 方法的高级应用与特性解析
1. 避免未定义方法错误
在调试代码时,程序因未定义方法而崩溃在自用调试时或许可以接受,但在面向最终用户时则不可取。若担心未定义方法成为问题,可在使用单例方法前先测试其是否存在。
操作步骤 :
- 使用 Object 类的 singleton_methods 方法返回单例方法名数组。
- 用 Array 类的 include? 方法测试方法名是否存在。
以下是示例代码:
starprize = Box.new( "Star Prize" )
def starprize.congratulate
puts( "You've won a fabulous holiday in Grimsby!" )
end
if item.singleton_methods.include?("congratulate") then
item.congratulate
end
也可以使用 Object 类的 respond_to? 方法,将方法名作为符号传递:
if item.respond_to?( :congratulate ) then
item.congratulate
end
超级会员免费看
订阅专栏 解锁全文
307

被折叠的 条评论
为什么被折叠?



