是否可以声明关闭的返回类型?

Is it possible to declare return type for closure?

提问人:linrongbin 提问时间:7/29/2020 最后编辑:Mario Galiclinrongbin 更新时间:7/30/2020 访问量:42

问:

我正在学习 scala 编程语言的闭包。

例如:

val a = (x:Int, y:Int) => x + y;
a(1, 2)

会给我.闭包的工作方式类似于 函数 。3a(Int, Int):Int

是否可以像这样声明闭包的返回类型?

val a = (x:Int, y:Int):Int => x + y;
a(1, 2)

可能吗?

Scala 闭包

评论


答:

3赞 Boris Azanov 7/29/2020 #1

这种语法是不可能的(),但你可以为以下语言声明类型:val a = (x:Int, y:Int):Int => x + ya

val a: (Int, Int) => Int = (x, y) => x + y

评论

0赞 linrongbin 7/29/2020
还有一个问题,我可以像这样在用分号括号的块中编写语句吗:?val g:(Int,Int)=>Int = (a:Int, b:Int) => { return a + b; }
1赞 Boris Azanov 7/29/2020
这是一个法律表达,但只是没有关键字return
2赞 Dmytro Mitin 7/29/2020
这种语法是不可能的......实际上,人们可以用类型归属来编写。val a = (x: Int, y: Int) => (x + y): Int