Scala中的Type接口用于使类型声明为可选,并处理所有类型不匹配异常(如果发生)。
编译器的这种功能使程序员更容易编写代码。由于可以保留数据类型的声明,因此编译器会努力检测数据类型。
让我们举一个Scala程序的示例,该程序以其数据类型声明变量,
object MyClass { def main(args: Array[String]) { var data : Double = 34.45; println("数据是 "+ data +" and data type is "+data.getClass); } }
输出结果
数据是 34.45 and data type is double
现在,让我们看看实际的类型推断,
object MyClass { def main(args: Array[String]) { var data = 34.45; println("数据是 "+ data +" and datatype is "+data.getClass); } }
输出结果
数据是 34.45 and datatype is double
如您所见,这两个代码的输出是相同的。如果程序员不提供变量的数据类型,则编译器将进行工作并根据存储在其中的数据为数据提供类型。
我们已经看到了变量的类型推断。现在,让我们看看function中的类型推断。在函数的类型推断中,函数的返回类型被省略,并且return关键字也被消除。
让我们看一个函数中类型推断的例子,
object MyClass { def multiplier(a : Int , b:Int) ={ var product = a*b; product; } def main(args: Array[String]) { var data = 34.45; println("数字的乘积是 "+ multiplier(34 , 54)); } }
输出结果
数字的乘积是 1836
在类型推断的情况下,我们还需要省略return关键字。否则,编译器将返回错误。