查看: 1940|回复: 6

[已经解决] 有关alias的问题

[复制链接]
梦石
0
星屑
75
在线时间
139 小时
注册时间
2014-5-4
回帖
53
发表于 2015-12-6 21:16:03 | 显示全部楼层 |阅读模式

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

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

×
在看F1 对alias 理解不清楚

[pre lang="ruby"]class Person
  def introduce(形参)
    msgbox"#{形参}!我是人类"
  end
  alias xxx001_introduce introduce
  def introduce(形参)
    xxx001_introduce
    msgbox"#{形参}!我是男性"
  end
end
a=Person.new
a.introduce("你好")[/pre]

我的想法是显示 你好!我是人类 再显示  你好!我是男性

但是 只显示报错。。。。

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-12-6 21:29:38 | 显示全部楼层
class Person
  def introduce(形参)
    msgbox"#{形参}!我是人类"
  end
  alias xxx001_introduce introduce
  def introduce(形参)
    xxx001_introduce(形参)
    msgbox"#{形参}!我是男性"
  end
end
a=Person.new
a.introduce("你好")

点评

额,我蠢,谢谢 版主大人  发表于 2015-12-6 21:46

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
75
在线时间
139 小时
注册时间
2014-5-4
回帖
53
 楼主| 发表于 2015-12-6 22:03:05 | 显示全部楼层
还有一个问题,alias 的用处都说 是为了避免与其他 手写脚本相干扰,但是以我上面的例子,如果我在网上下到一个脚本,而脚本中用到def introduce。但它调用的是我的新方法啊,就是显示 你好!我是人类 再显示  你好!我是男性 而不是原def introduce 只显示 你好!我是人类 的呢个啊?这不还是干扰了吗

呵呵 ,理解能力差,逻辑性弱,见笑了
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-12-6 22:08:55 | 显示全部楼层
alias 就是为了保留原方法,让原方法可以不被直接覆盖。
详细的内容可以看喵呜的形象生动的解释:https://rpg.blue/forum.php?mod=v ... p;page=1#pid2519110
回复

使用道具 举报

梦石
0
星屑
75
在线时间
139 小时
注册时间
2014-5-4
回帖
53
 楼主| 发表于 2015-12-7 18:39:31 | 显示全部楼层
本帖最后由 invirgin 于 2015-12-7 18:55 编辑

谢谢 版主大人
但是
Snap6.jpg
在喵大的最终的执行脚本中 def 洗澡   第一行是开始冲水
但是在 第一个插入脚本中 我并没有找到 开始冲水 这指令啊
为什么 最终的执行脚本中 有开始冲水呢?

点评

有生之年 能见到喵大手滑 洒家这辈子值了  发表于 2015-12-7 19:11
手滑,无视掉这句就好了  发表于 2015-12-7 19:07
我猜这是写在她的dll里的  发表于 2015-12-7 18:47
回复

使用道具 举报

梦石
0
星屑
75
在线时间
139 小时
注册时间
2014-5-4
回帖
53
 楼主| 发表于 2015-12-7 19:10:50 | 显示全部楼层
本帖最后由 invirgin 于 2015-12-7 19:25 编辑

还有一个问题
以喵大的例子

Snap8.jpg
Snap9.jpg

假如我在网上 下了一个脚本

脚本中 调用def 小苹果

但结果是显示歌词 你是我的小呀小苹果 怎么爱你都不嫌多 多多多多多

但 网上 下的脚本 只是想 调用 原始的 def 小苹果 即显示歌词 你是我的小呀小苹果

难道 我只能手动将我下的脚本中的 def 小苹果 全都改为 def 红富士?


回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-12-7 20:36:43 | 显示全部楼层
本帖最后由 喵呜喵5 于 2015-12-7 20:39 编辑
invirgin 发表于 2015-12-7 19:10
还有一个问题
以喵大的例子


是的,请针对这个脚本手动进行一次这样的批量修改,不过,个人的建议是,放弃其中一个脚本

alias 是防止脚本冲突的一个措施,而不是一个肯定能防止脚本冲突的万能手段。

你提到的这种情况可以看成是这样:
一个脚本将 角色的名字 改成了 角色的名字+角色的称号,角色名字中允许有其他内容
而另一个脚本则认为 角色的名字 就是 角色的名字 ,角色名字中不允许有其他内容
在这种情况下,两个脚本本身的功能(逻辑)就是冲突的,让这两个冲突的功能相互兼容本身就是不现实的,必须在两个功能之间做出取舍

当然,实际上,如果不是特别大的功能改动的话,这种情况出现的几率还是比较小的

点评

哦 我明白了 睡前又跟喵大学习了新姿势。  发表于 2015-12-7 22:11

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部