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

Project1

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

[已经解决] 【Ruby】 有 include 相反的操作的写法吗?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
521 小时
注册时间
2011-12-7
帖子
305
跳转到指定楼层
1
发表于 2013-7-2 21:10:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x



    就是去除模块的写法

Lv3.寻梦者

梦石
0
星屑
1180
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

2
发表于 2013-7-3 01:59:37 | 只看该作者
为什么要这么做呢?
引入模块就是为了解决多继承的问题。为什么还要除去模块呢?是有什么特殊需要么?

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
521 小时
注册时间
2011-12-7
帖子
305
3
 楼主| 发表于 2013-7-3 09:25:42 | 只看该作者
DeathKing 发表于 2013-7-3 01:59
为什么要这么做呢?
引入模块就是为了解决多继承的问题。为什么还要除去模块呢?是有什么特殊需要么? ...


RUBY是动态语言嘛,为了实现游戏运行时自我修改

用undef应该可以实现,我想如果可以直接卸掉模块,修改效率更高……

我是新手嘛,所以不知道能不能卸模块或有更好的办法去掉已定义的东西
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
135 小时
注册时间
2013-6-10
帖子
29
4
发表于 2013-7-3 10:23:25 | 只看该作者
if/else就够了不知道为什么要undef.
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1180
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

5
发表于 2013-7-3 10:47:02 | 只看该作者
Ceopal 发表于 2013-7-3 09:25
RUBY是动态语言嘛,为了实现游戏运行时自我修改

用undef应该可以实现,我想如果可以直接卸掉模块,修改 ...

玩动态不是不可以,但我觉得RPG Maker制作的游戏不需要这种编程技巧吧?

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
32 小时
注册时间
2013-6-28
帖子
39
6
发表于 2013-7-3 15:25:02 | 只看该作者
不如不要include,需要的时候用::直接引用
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
521 小时
注册时间
2011-12-7
帖子
305
7
 楼主| 发表于 2013-7-3 18:56:57 | 只看该作者
本帖最后由 Ceopal 于 2013-7-3 18:58 编辑

当一堆不是自己写的脚本聚在一起后……脚本们各自的脾气不一样……
if/else就够了不知道为什么要undef.

不够的……只要存在,就会引发问题……就像 高速公路上不能停车(脚本)一样……
玩动态不是不可以,但我觉得RPG Maker制作的游戏不需要这种编程技巧吧?

比喻回复你......

如果每个脚本是一辆车……

我不是不想当交警……而是我没有能力当交警……

我选择当铺路工人,为脾气不好的脚本 铺一条路……
不如不要include,需要的时候用::直接引用

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
68
在线时间
585 小时
注册时间
2013-5-25
帖子
1524
8
发表于 2013-7-4 19:17:28 | 只看该作者
Ceopal 发表于 2013-7-3 18:56
当一堆不是自己写的脚本聚在一起后……脚本们各自的脾气不一样……

不够的……只要存在,就会引发问题…… ...

直接调用模块的方法为什么不可呢

不如你自己对object类写一个方法让它对指定模块的方法逐个undef吧,把N替换为Object就可以直接用了

RUBY 代码复制
  1. module A
  2.   def a
  3.     msgbox "1"
  4.   end
  5. end
  6. class N
  7.   include A
  8.   def initialize
  9.   end
  10.   def cmds(a)
  11.     eval(a)
  12.   end
  13.   def uninclude(a)
  14.     for f in a.instance_methods
  15.       eval("undef "+f.to_s)
  16.     end
  17.   end
  18. end
  19. n = N.new
  20. n.a #==> 1
  21. n.uninclude A
  22. n.a #==> unfined mothod error


我认为楼主说自己是新手只是个借口、借口,嗯

评分

参与人数 1星屑 +100 收起 理由
Sion + 100 感谢帮忙

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

9
发表于 2013-7-4 20:06:35 | 只看该作者
去除有用吗?别处一调用就报错了;那要是可以做到不调用,还去除它干嘛。还是说你本来就不打算调用它们{:2_263:}
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
767
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
10
发表于 2013-7-4 21:38:11 | 只看该作者
Sion 发表于 2013-7-4 20:06
去除有用吗?别处一调用就报错了;那要是可以做到不调用,还去除它干嘛。还是说你本来就不打算调用它们{:2_ ...

如果是先前使用某种语言然后又开始使用ruby,一部分人会故意刁难ruby故意挑刺

点评

其实楼主只是在想一些奇怪的办法来解决脚本的兼容性问题而已 - -b  发表于 2013-7-4 21:49
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 10:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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