下面红框里为什么能直接用l,r, 而不是left,right?
来源:5-1 命令行计数器开发
Charles_hzr
2021-07-24 23:14:19
下面红框里为什么能直接用l,r, 而不是参数left,right?
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;
}
}
相似问题
回答 1