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

Project1

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

[已经解决] alias 新函数名 旧函数名 看不懂

[复制链接]

Lv1.梦旅人

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

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

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

x
谁能给我解释下刚才在从0开始学RGSS2中看到了这一步就看不出懂了.
[

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2011-7-23
帖子
15
2
 楼主| 发表于 2013-4-23 10:20:57 | 只看该作者
lairen a

评分

参与人数 1星屑 -10 收起 理由
怪蜀黍 -10 12小时内自顶

查看全部评分

[
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

贵宾

3
发表于 2013-4-26 13:12:09 | 只看该作者
怎么说呢?alias的最直接作用就是“给方法取别名”了(当然也可以给变量)。譬如下面的左图,x指代了某种东西,那么我们给x取别名y,那么用y也可以访问到同样的东西了。



那alias究竟有什么实际的用处呢?这个通常体现在对方法的应用上。假设有一个叫作“old”的方法,我们想向old中添加新的代码。这时候就遇到了两个困难:

  • 我们不知道何处也调用了这个old方法,所以我们不能简单的新定义一个方法来添加内容。
  • old方法对我们来说是个黑盒(Black Box),我们在运行时(Runtime)我们没有简单的方法将其内部定义给抽取出来。


所以,就用到了给方法取别名的技术,就像下图这样:



我们给这个叫old的方法取了一个叫new的别名,这两者都指代的是同一个方法。然后重新定义old,意思将old与另外一个东西关联起来,而不是去修改old关联的东西。将old定义为什么呢?就是之前那个old方法,由于“old”这个名字不再指代那个方法了,所以我们就用它的别名“new”来指代。这个新定义的东西,对我们来说是开放的,所以我们可以为它添加东西。

这样,其它地方如果调用了old,也能享受我们定义的新内容所带来的福利。

评分

参与人数 1梦石 +1 收起 理由
怪蜀黍 + 1 图文并茂

查看全部评分


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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 09:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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