如何在Ruby中改进模块方法?
发布时间:2020-12-17 04:28:40 所属栏目:百科 来源:网络整理
导读:你可以改进你的课程 module RefinedString refine String do def to_boolean(text) !!(text =~ /^(true|t|yes|y|1)$/i) end endend 但如何细化模块方法? 这个: module RefinedMath refine Math do def PI 22/7 end endend 引发:TypeError:错误的参数类型
你可以改进你的课程
module RefinedString refine String do def to_boolean(text) !!(text =~ /^(true|t|yes|y|1)$/i) end end end 但如何细化模块方法? module RefinedMath refine Math do def PI 22/7 end end end 引发:TypeError:错误的参数类型Module(期望的Class) 解决方法
这段代码将起作用:
module Math def self.pi puts 'original method' end end module RefinementsInside refine Math.singleton_class do def pi puts 'refined method' end end end module Main using RefinementsInside Math.pi #=> refined method end Math.pi #=> original method 说明: 定义模块#method是equivalent,用于在其#singleton_class上定义实例方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- dojo/Deferred类和dojo/promise类的使用
- Ajax原理-原生js的XMLHttpRequest对象意义
- ruby-on-rails – REST和Rails:为给定资源和操作显示不同视
- swift – 为什么我的facebook插页式广告不会显示在我的应用
- ReactNative基础(二)了解组件的生命周期
- crystal-reports – 在XML文件中存储Crystal Reports?
- Oracle中的instr()函数 详解及应用
- 2010年10大热门的开源NoSQL服务器软件
- c# – 将Excel连接到.Net Core v1.1 OData v4的异常添加至少
- 2d空间直线拟合as3源码和flash示例