查看: 2340|回复: 3

[已经解决] alias 新旧名字到底谁在前?

[复制链接]
梦石
0
星屑
12824
在线时间
1010 小时
注册时间
2019-11-5
回帖
2329

极短27参与极短25参与极短24参与

发表于 2021-11-7 12:22:38 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 哇哇哇啊叭叭 于 2021-11-7 11:32 编辑


  理解了!它们的关系是这样的:
alias 方法1 方法2 # 把“方法2”里的内容倒给“方法1”,于是“方法2”可以清空了
def 方法2            # 重新定义“方法2”,并在其中执行“方法1”
  方法1
end

  两个方法中,一个皮是旧的,瓤是新的;另一个恰好相反。

栗子

[pre lang="ruby"]
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------         
  alias x_damage_dispose dispose
  def dispose
    super
    buraburabura = 0
    x_damage_dispose
  end

[/pre]

  旧杯里有一杯水,我想喝饮料,又不想浪费水。于是我找了个新杯子,把隔夜水倒进新杯子;又拿来新饮料倒进旧杯子。新杯子里是旧水,旧杯子里是新饮料。





  网上找到的资料,全部都坚称“alias :newname :oldname”。看起来像是“alias 新定义的方法,原本的老方法”。

  但见到一些RGSS作者喜欢这样写:“alias 原本的方法 新定义的方法”
栗子
alias 老方法 我改的方法
def 我改的方法
  老方法
  zheshizenmele = true
  weishenmegenwangshangdebuyiyang = true
end



  提早感谢热心大佬的回复!谢谢!

风继续吹,不忍远离。年少轻狂,眼神明亮,最好的年纪,最好的时光。希望岁月是一场春梦
梦石
0
星屑
9862
在线时间
580 小时
注册时间
2017-9-28
回帖
203
发表于 2021-11-7 14:41:48 | 显示全部楼层
其实他的顺序和变量赋值是一致的
  1. b = a       # 把 a 赋值给 b
  2. alias g f   # 把方法 f "赋值"给 g
复制代码

评分

参与人数 2星屑 +20 赞 +1 收起 理由
alexncf125 + 20 认可答案
哇哇哇啊叭叭 + 1 认可答案

查看全部评分

喵喵喵
回复 2 0

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2021-11-7 13:27:58 | 显示全部楼层
本帖最后由 cinderelmini 于 2021-11-7 13:29 编辑

新名字在前
新名字放后面就给你弹无定义的方法了

评分

参与人数 2星屑 +15 赞 +1 收起 理由
alexncf125 + 15 认可答案
哇哇哇啊叭叭 + 1 塞糖

查看全部评分

回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2021-11-7 16:17:31 | 显示全部楼层
我觉得这和C里的宏的声明很像:关键字+名称+具体定义
  1. #define PI 3.14159
复制代码
  1. alias new_method origin_method
复制代码

评分

参与人数 2星屑 +15 赞 +1 收起 理由
alexncf125 + 15 认可答案
哇哇哇啊叭叭 + 1 谢谢!

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部