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

Project1

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

[通用发布] [开发用]alias_methods(Update Again!)

[复制链接]

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

跳转到指定楼层
1
发表于 2011-6-20 21:05:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 忧雪の伤 于 2011-6-21 15:29 编辑
  1. class Module
  2.   def alias_methods(prefix, *methods)
  3.     methods.each {|item| (prefix = prefix + prefix
  4.     ) while method_defined?("#{prefix}#{item}") }
  5.     methods.each {|item| alias_method("#{prefix}#{item}", item) }
  6.     methods.collect {|item| "#{prefix}#{item}".to_sym }
  7.   end
  8. end
复制代码



Module#alias_methods(prefix, method1[, method2 ... ])
Module#alias_methods(prefix, method1[, method2 ... ])

    依次把 prefix 作为前缀定义 method1、method2 ... 的别名。
    别名存在的场合,自动叠加前缀。
    返回处理顺序的别名的数组。



例:
  1. module Foo
  2.   def foo
  3.   end
  4.   def pia
  5.   end
  6.   alias_methods(:_, :foo, :pia)
  7. end

  8. print Foo.method_defined?(:_foo) # => true
  9. print Foo.method_defined?(:_pia) # => true
复制代码



各种重大更新……谢谢 zh 啥的……




思路来源可以点击这里查看。

Lv3.寻梦者

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

贵宾

5
发表于 2011-6-21 13:26:23 | 只看该作者
哈哈,的确是个好功能,想想,以前加强默认脚本的时候,需要自己手工 alias 多少 method 啊……

可以考虑加入一个新功能,比如,给符合正则式的方法重命名什么的。

点评

你知道我不懂正则表达式的。  发表于 2011-6-21 13:27

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
226 小时
注册时间
2010-9-13
帖子
494
4
发表于 2011-6-21 12:44:20 | 只看该作者
板凳都没了,还让我怎么活、

评分

参与人数 1星屑 -20 收起 理由
夕阳武士 -20 没人教你不要来技术区灌水么

查看全部评分

黑暗,总在不知不觉中降临到人们身边。 当人们意识到时,已经有无数人成为了罪恶与欲望的牺牲者。 无助的人们会期待能够拯救他们的英雄出现。 但是,这个世界真的存在英雄? 答案恐怕是否定的。 历史会以惊人的相似 ...
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

3
 楼主| 发表于 2011-6-21 12:18:14 | 只看该作者
本帖最后由 忧雪の伤 于 2011-6-21 12:23 编辑
darkscout3000 发表于 2011-6-21 04:07
这个就是⋯⋯可以快速给多个方法别名?

然后那个⋯⋯有点不明白的地方⋯⋯这行code看起来基本上就假设args ...


话说到底是to_a还是to_ary?
这只是方便而已。
to_a 和 to_ary 都确认可以了。
to_a的一个例子。
  1. print (1...3).to_a
复制代码


忧雪の伤于2011-6-21 12:42补充以下内容:
各种更新自顶。

点评

哦哦,理解了  发表于 2011-6-21 21:49
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
255
在线时间
227 小时
注册时间
2009-7-26
帖子
216
2
发表于 2011-6-21 04:07:26 | 只看该作者
这个就是⋯⋯可以快速给多个方法别名?

然后那个⋯⋯有点不明白的地方⋯⋯
  1. args[1].to_a unless args[1].is_a?(Array)
复制代码
这行code看起来基本上就假设args[1]是数列了?
印象中没有多少类有to_a的方法吧⋯⋯

点评

话说新版的代码比较好  发表于 2011-6-21 22:32
“可以快速给多个方法别名?”恩。  发表于 2011-6-21 12:22
不要吐槽我⋯⋯
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 21:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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