【发布时间】:2017-09-08 13:15:46
【问题描述】:
我想知道是否可以指定函数文字的返回类型。例如我有
(x:Int) => x * 2 // scala infers the type Int => Int
((x:Int) => Double) => x * 2 // does NOT compile
我知道 Scala 会进行类型推断来查找返回类型,但我想显式指定类型,以便编译器更早地捕获错误。
当然我可以强制检查
val a: Int => Int = (x: Int) => x * 2
但是可以直接在函数字面量上指定吗?
【问题讨论】:
-
(x: Int) => x*2.0?或(x: Int) => (x*2): Double -
您甚至可以在大括号中的块上使用类型归属:
(x: Int) => { ... tons of code ... }: Double -
完美,谢谢,这正是我想要的,我想不通。让它成为一个答案,我会接受它!
标签: scala