创建Scala函数而不显式声明类型

mar*_*trz 2 scala

我想创建一个简单的函数:

def sum(a,b) = a + b
Run Code Online (Sandbox Code Playgroud)

但是它不会编译,我必须这样做

def sum(a:Int, b:Int) : Int = a + b
Run Code Online (Sandbox Code Playgroud)

编码和类型绑定的时间要长得多.是否可以在不指定类型的情况下执行此操作,就像我在OCaml中所做的那样:

let sum x y = x + y
Run Code Online (Sandbox Code Playgroud)

Tza*_*har 5

在Scala中,您可以省略函数的返回类型,但不能省略参数类型:

def sum(a:Int, b:Int) = a + b // return type inferred to be Int
Run Code Online (Sandbox Code Playgroud)

有关Scala类型推断的更多信息,请参阅:http://docs.scala-lang.org/tutorials/tour/local-type-in​​ference.html