Scala 类型推理
Scala类型推理使得指定变量的类型成为可有可无的事情,但类型不匹配的情况会被处理。有了类型推断功能,我们可以花更少的时间来写出编译器已经知道的东西。Scala编译器通常可以推断出一个表达式的类型,所以我们不必明确地声明它。让我们先来看看scala中如何声明不可变的变量的语法。
例子
输出:
在上面的例子中,getClass方法被用来打印变量的类型到控制台。在上面的例子中,变量’a’的类型是double。然而,通过类型推理,Scala会自动检测变量的类型,而无需用户明确指定。
例子:
输出:
请注意,上述变量没有明确指定数据类型。 Scala函数的类型推理 现在我们来看看Scala中函数的类型推理是如何进行的。首先让我们来看看Scala中的函数是如何声明的。
语法
例子 :
输出:
在上面的例子中,我们可以从声明中看到,指定的返回类型是Int。通过Scala类型推理,Scala会自动检测出函数的类型,而不需要用户明确指定。
例子:
输出:
在上面的例子中,省略了冒号和返回类型。另外,在上面的例子中,我们省略了 “return f “到 “f “的语句,因为我们没有指定返回类型。如果把 “f “改为 “return f”,那么编译器会显示以下错误。
这显示了Scala类型推理的强大功能,但对于递归方法,编译器无法推断出结果类型。上述阶乘函数也可以以递归方式实现。下面是一个没有类型推理的阶乘函数的递归定义。
例子:
输出:
示例: 使用Scala类型推理
输出