Project1

标题: RGSS3Facets 0.02 基础类别/模块/方法的强化 貌似RMXP也能用 [打印本页]

作者: 晴兰    时间: 2014-2-23 15:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: taroxd    时间: 2014-2-23 16:47
本帖最后由 taroxd 于 2014-2-28 20:35 编辑

好多语法糖~ 学习了

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

下面这个我觉得也挺常用的吧
RUBY 代码复制
  1. module Enumerable
  2.  
  3.   def sum(base = 0)
  4.     block_given? ? inject(base) {|a, e| a + yield(e) } : inject(base, :+)
  5.   end
  6.  
  7.   # 元素之积(Array类已存在product方法)
  8.   def pdt(base = 1)
  9.     block_given? ? inject(base) {|a, e| a * yield(e) } : inject(base, :*)
  10.   end
  11.  
  12.   # base取0.0即可做浮点运算
  13.   def average(base = 0, &block)
  14.     sum(base, &block) / [count, 1].max
  15.   end
  16. end

作者: taroxd    时间: 2014-2-23 17:08
本帖最后由 taroxd 于 2014-2-23 17:15 编辑

RUBY 代码复制
  1. class Game_Unit
  2.   include Enumerable
  3.   def each(&block); members.each(&block); end
  4. end


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

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

另外,我觉得Object#self的定义可以改成这样
RUBY 代码复制
  1. def p_self
  2.   p self # return self
  3. end

拿来测试表达式的值似乎挺方便的,比如 a.meth1.meth2.meth3直接改成a.meth1.meth2.p_self.meth3什么的




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