Ruby ruby 环境嵌套的写法?

linjunhalida · 2012年11月19日 · 最后由 linjunhalida 回复于 2012年11月19日 · 2143 次阅读

在 js 下面,我可以写出这样的代码:

var more = function(){
    var v;
    var result = function(){
        v ++;
        return v;
    }
    return result
}

但是在 ruby 下面,好像是不支持这样的嵌套环境的,我如何写出类似上面的代码?我不想用 class,而只是用函数组合?

用 lambda:

more = -> {
  v = 0
  -> { v += 1 }
}

moe = more.()
moe.()   # 1
moe[]    # 2
moe.[]   # 3
moe.call # 4

#1 楼 @luikore 哈,我还没有想到可以用 lambda,解决了问题,非常感谢!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号