Project1

标题: RGSS2中有关alias用法的一个问题 [打印本页]

作者: 深海的影    时间: 2009-4-9 00:09
标题: RGSS2中有关alias用法的一个问题
我最近在尽力阅读KGC的那个多人队伍的脚本,发现这里有关alias(别名)的用法不容易理解,想请教一下各位大大。具体的问题如下:

在脚本中出现了很多诸如这样的定义:
      alias display_level_up_KGC_LargeParty display_level_up
      def display_level_up
          ......
          display_level_up_KGC_LargeParty
          ......(具体的代码我就省略啦{/cy})
      end
我发现,display_level_up_KGC_LargeParty,这个方法在整个脚本中完全没有出现过,这样的使用有什么特别的用意吗?而且对于功能来说没有什么影响吗?
希望哪位高手帮我解决一下这个问题,非常感谢{/wx}

附:类似于这样的定义非常常见的,比如:
      alias oldinitialize  initialize
      def initialize
          ......
          oldinitialize
      end [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 八云紫    时间: 2009-4-9 01:45
方法在定义的时候,为了避免和原来方法冲突,就可以使用 alisa

例如:

class A
  def abc
   p 1
  end
end

使用 alisa 添加属性:

class A
   alisa old_abc abc
   def abc
     old_abc
     p 2
   end
end

调用的时候就会发现

a = A.new

输出的是  1 和 2.

说明 old_abc 是原来方法的拷贝,就是说:

class A
   alisa old_abc abc
   def abc
     old_abc
     p 2
   end
end

等价于

class A
   def abc
     p 1
     p 2
   end
end [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 深海的影    时间: 2009-4-9 02:09
非常感谢啦{/qiang}

代码这东西还是要点实践精神的,对于我这个新入行的人来说,CP制和多人队伍的整合就够头疼的了{/pz}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1