Scala中的类型推断

Scala类型接口

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

如您所见,这两个代码的输出是相同的。如果程序员不提供变量的数据类型,则编译器将进行工作并根据存储在其中的数据为数据提供类型。

函数中的Scala类型推断

我们已经看到了变量类型推断。现在,让我们看看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关键字。否则,编译器将返回错误。