设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1618|回复: 2
打印 上一主题 下一主题

[已经解决] 要把一个模块的所有方法全部变成模块方法,这样可行吗?

[复制链接]

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

跳转到指定楼层
1
发表于 2014-1-14 21:24:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 taroxd 于 2014-1-15 15:28 编辑

RUBY 代码复制
  1. module A
  2.   #define methods...
  3. end
  4.  
  5. class << A
  6.   include A
  7. end


如果不可行,有没有其他方法?会不会造成Bug?顺便问一句,模块Math是怎么实现这个效果的?

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
来自 2楼
发表于 2014-1-14 21:55:08 | 只看该作者
module_function加在最上面
  1. module A
  2.   module_function
  3.   def ...
  4. end
复制代码
如果不想改动原脚本的话,用你那种方法或者
  1. module B
  2.   extend B
  3. end
复制代码
据说还可以用Method和UnboundMethod实现,不过没必要了

评分

参与人数 1梦石 +1 收起 理由
迷糊的安安 + 1 谢谢!

查看全部评分

我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
 楼主| 发表于 2014-1-15 09:17:26 手机端发表。 | 只看该作者
本帖最后由 taroxd 于 2014-1-15 11:21 编辑
无脑之人 发表于 2014-1-14 21:55
module_function加在最上面如果不想改动原脚本的话,用你那种方法或者据说还可以用Method和UnboundMethod实 ...


谢谢!前者我是知道的,但是我要保留原方法,并且定义中用到了super

第二种就是我想要的方式,再问一句,extend self 可以吗?有环境了,测试可行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-12 21:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表