查看: 2127|回复: 2

[RMVA发布] RGSS3Facets 0.02 基础类别/模块/方法的强化 貌似RMXP也能用

[复制链接]
头像被屏蔽
梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
回帖
1577

开拓者

发表于 2014-2-23 15:02:55 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-2-23 16:47:22 | 显示全部楼层
本帖最后由 taroxd 于 2014-2-28 20:35 编辑

好多语法糖~ 学习了

话说,ruby的facets这个gem里面有更多糖……

下面这个我觉得也挺常用的吧
[pre lang="ruby" line="1"]module Enumerable

  def sum(base = 0)
    block_given? ? inject(base) {|a, e| a + yield(e) } : inject(base, :+)
  end

  # 元素之积(Array类已存在product方法)
  def pdt(base = 1)
    block_given? ? inject(base) {|a, e| a * yield(e) } : inject(base, :*)
  end

  # base取0.0即可做浮点运算
  def average(base = 0, &block)
    sum(base, &block) / [count, 1].max
  end
end[/pre]

点评

完全不介意  发表于 2014-2-23 17:00
另外Facets这个名字就是对RubyFacet致敬的。。而且有些几乎是刻意避开的。。因为那个脚本可以直接用进来,没必要再实现  发表于 2014-2-23 16:54
您不介意的话我想加进来~  发表于 2014-2-23 16:53
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-2-23 17:08:42 | 显示全部楼层
本帖最后由 taroxd 于 2014-2-23 17:15 编辑

[pre lang="ruby" line="1"]class Game_Unit
  include Enumerable
  def each(&block); members.each(&block); end
end[/pre]

这个应该也很好玩。目测没什么问题。

反正我用的糖都是放在http://rpg.blue/thread-344203-1-1.html的1L的。都随便用啦~

另外,我觉得Object#self的定义可以改成这样
[pre lang="ruby" line="1"]def p_self
  p self # return self
end[/pre]
拿来测试表达式的值似乎挺方便的,比如 a.meth1.meth2.meth3直接改成a.meth1.meth2.p_self.meth3什么的
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部