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

Project1

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

[随意闲聊] 最美不过RUBY。

[复制链接]

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

跳转到指定楼层
1
发表于 2011-7-20 03:45:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 神思 于 2011-7-20 03:49 编辑

哈哈,过下瘾而已,编码编的头都晕晕的了。
  1. class SuperObject
  2.   def method_missing(method, *args)
  3.     if(@@methodsMap[[method,args.length]] != nil)
  4.       return SuperObject.call(method, *args);
  5.     else
  6.       return super
  7.     end
  8.   end
  9.   
  10.   @@methodsMap = Hash.new();
  11.   def self.define(method, &proc)
  12.     @@methodsMap[[method, proc.arity]] = proc;
  13.   end
  14.   
  15.   def self.call(method, *args)
  16.     @@methodsMap[[method, args.length]].call(*args);
  17.   end
  18.   
  19.   def self._return(*args)
  20.     return *args;
  21.   end
  22.   
  23.   define(:print){|arg1|
  24.     _return arg1 * 2;
  25.   }
  26.   
  27.   define(:print){|arg1, arg2|
  28.     _return arg1 * 2 * arg2
  29.   }
  30.   
  31. end

  32. p SuperObject.new().print(2);

  33. j = SuperObject.new().print(2, 2);
  34. p "j=#{j}";
复制代码

评分

参与人数 5星屑 +48 梦石 +4 +2 收起 理由
Ж纯Ж蓝Ж + 20 给力。
玮哥投胎了 + 2 + 2 + 2 虽然看不懂,但直觉感到好像不错,给分吧。.
v2sam + 2 你是个好人!
Kimu + 20 精髓啊
darkscout3000 + 6 +1 ... 果断收走

查看全部评分

-.-

Lv3.寻梦者

孤独守望

梦石
0
星屑
3121
在线时间
1534 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

2
发表于 2011-7-20 06:30:37 手机端发表。 | 只看该作者
你赢了= =b 再来个__id__吧
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
3
发表于 2011-7-20 07:02:27 | 只看该作者
好高深的代码
1、@@methodsMap后面为什么用两个[[ ]] ?
2、method_missing这个方法在哪里调用了?还是说print会自动调用?
3、define这个是什么意思?什么作用?
最近在研究XAS
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

贵宾

4
发表于 2011-7-20 07:13:45 | 只看该作者
动态可是Rubu的魂啊。

点评

*ruby  发表于 2011-7-27 18:43

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
169 小时
注册时间
2007-8-12
帖子
203
5
发表于 2011-7-26 18:29:08 手机端发表。 | 只看该作者
赛露休斯 发表于 2011-7-20 07:02
好高深的代码
1、@@methodsMap后面为什么用两个[[ ]] ?
2、method_missing这个方法在哪里调用了?还是说pr ...

1 @@methodsMap是一个哈希表,其键是数组,所以用了两个[]
2 这个方法会在找不到方法的时候调用
3 define会把语句块作为值,参数和语句块中的参数个数组成的数组作为键,写入哈希表中

总之就是把proc作为方法来用啦
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
239
在线时间
2399 小时
注册时间
2008-4-11
帖子
12326

贵宾第6届短篇游戏比赛季军

6
发表于 2011-7-26 18:48:21 | 只看该作者
Proc.new这个好熟悉,貌似昨天刚和剑剑说到这个
回复 支持 反对

使用道具 举报

乌有君
7
乌有君  发表于 2011-7-26 19:32:39
本帖最后由 匿名 于 2011-7-26 19:32 编辑


自从用了RUBY,DOS也能多线程
自从到处充满了EVAL,教科书上的哈佛VS冯诺依曼结构大战实际上冯诺依曼已经被败了。
自从充满了动态,呃……等等C那里其实也能做到,不过不是每个人都能适应漫天的指针和一大堆需要自己操作的东西
回复 支持 反对

使用道具 举报

Lv1.梦旅人

真实之终章

梦石
0
星屑
60
在线时间
48 小时
注册时间
2008-8-7
帖子
281
8
发表于 2011-7-26 20:25:46 手机端发表。 | 只看该作者
匿名者 发表于 2011-7-26 19:32
自从用了RUBY,DOS也能多线程
自从到处充满了EVAL,教科书上的哈佛VS冯诺依曼结构大战实际上冯诺 ...

C不是编译的么,如何动态…
玫瑰绽放,彼岸流殇。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
8988
在线时间
4373 小时
注册时间
2005-10-22
帖子
6759

开拓者贵宾

9
发表于 2011-7-26 21:26:57 | 只看该作者
胖达达人 发表于 2011-7-26 20:25
C不是编译的么,如何动态…

C能写RUBY解释器~\(≧▽≦)/~
所以RUBY还是C(大雾)

点评

我是被你帖子数吸附过来的【- b 好强引力】  发表于 2011-7-27 16:44
没黑幕?难得  发表于 2011-7-27 12:10
难的不黑幕。。。留名。。。  发表于 2011-7-27 00:34
-v-少见的不匿名啊,  发表于 2011-7-26 22:34
=v=  发表于 2011-7-26 22:12
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

10
发表于 2011-7-26 22:31:29 | 只看该作者
c能实现伪动态。。。
神隐中,偶尔诈尸
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-4 06:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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