关于一次dart和python的闭包比较小实验

939 阅读1分钟

先看一下例子

@dart2的语法

//dart2
//写法一
makeAdder(num addBy) =>((num i)=>addBy + i);
//上面这个是语法糖写法
//规范一点的写法如下
//写法二
 Function makeAdderOther(addBy){
    Function add(i){
        return addBy+i;
      }
      return add;
    }
void main(){
    print(makeAdder(1)(2);
    print(makeAdderOther(2)(6));
}

@python3的语法

#python3
def make_adder(add_by):
    def add(i):
        return add_by+i
    return add
print(makeAddr(1)(2))

重点看一下dart的第一个语法,简直不要太爽诶!

理解闭包,就是将一个函数的返回给另一个函数,函数被封闭在函数里,且不用现性地去调用内部的那个函数