闭包可以关闭调用函数的参数吗?

时间:2011-12-29 10:11:26

标签: functional-programming

我想知道是否可以关闭调用函数的参数,或者它是否可以在某种语言中使用不同的名称。谢谢。

1 个答案:

答案 0 :(得分:1)

Java用于lambda函数的方式是匿名嵌套/内部类:

interface SomeInterface{
    public void SomeMethod();
}

class A{
    public static SomeInterface f(final int somearg){
        return new SomeInterface(){
            public void SomeMethod(){
                System.out.println(somearg);
            }
        };
    }
}

public class Test {

    public static void main(String[] args) {
        A.f(2).SomeMethod();
    }

}

A.f(2).SomeMethod();打印2.注意最终关键字。

Lua可以做类似的事情:

upper=function(arg)
          print(arg+2)
          local inner=function()
               print(arg)
          end
          inner()
       end
upper(1)

打印

3
1