Ruby ruby 环境嵌套的写法?

linjunhalida · November 19, 2012 · Last by linjunhalida replied at November 19, 2012 · 2136 hits

在 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,解决了问题,非常感谢!

You need to Sign in before reply, if you don't have an account, please Sign up first.