下面红框里为什么能直接用l,r, 而不是left,right?

来源:5-1 命令行计数器开发

Charles_hzr

2021-07-24 23:14:19

下面红框里为什么能直接用l,r, 而不是参数left,right?


http://img.mukewang.com/climg/60fc2df90957672706210427.jpg

写回答

1回答

LovelyChubby

2021-07-25

你使用left, right 也是可以的。这种写法是根据条件返回的是一个匿名函数,由opFun来接收。

然而 opFun在声明时 接收了两个参数,所以这里的匿名函数也会有两个匿名参数,l,r.  随意命名


opFun接收的是个函数类型 

"+"->{   }这里的花括号就是匿名函数体

{ l,r }花括号里面的l,r  就是匿名函数

匿名函数需要有个返回值 -> 箭头右侧即为匿名函数的表达体了.  这种写法较为羞涩 不建议。

opFun = when(op){

   "+"->{l,r  ->  l+r}    

 }


上面的写法 等于

 if (op=="+"){

       return Function(l,r):String{

               return l+r;

        }

  }


0

0 学习 · 1012 问题

查看课程