简体   繁体   English

函数文字与call-by-name参数

[英]Function literal with call-by-name parameter

How does one define an anonymous function with call-by-name parameters in scala? 如何在scala中使用call-by-name参数定义匿名函数?

I tried the following: 我尝试了以下方法:

val fun = (x: Boolean, y: =>Int) => if(x) y else 0

This works well with call-by-value y, but not with call-by-name. 这适用于按值调用y,但不适用于按名称调用。 Why? 为什么?

它可以完成,但方式略有不同:与参数分开声明类型:

val fun: (Boolean, => Int) => Int = (x, y) => if (x) y else 0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM