智能类型推断
在Kotlin中可以使用var来定义变量,此关键字可以进行智能类型推断。效果和JS中的var类似。
//i的类型为Int类型
var i = 18;
//此时会发生报错,因为赋值的数值已经超出Int的取值范围
i = 9999999999999;
//j被自动判断为是一个Long型的变量
var j = 9999999999999;
变量在初始化时就会自动判断类型,并且起到绑定作用。再次对此变量做赋值时不能赋予与其不相符的数据类型。
定义的时候也可以显示的声明此变量是什么类型:
var i : Int = 18;
var j : Long = 9999999999999;
注:在变量被定义时如果没有初始化的值时,需要手动声明其类型,否则编译器无法得知此变量是哪种数据类型。
var x; //报错,原因为无预先设置初始化值。
var y : Int; //通过声明数据类型告知编译器。
var与val
- var 可以声明一个可读可写的变量,相当于java中的普通变量。
- val 用于声明一个只读变量,相当于java中用final声明的变量。
两者都能用于定义变量时的智能类型判断。
不可隐式转换
在Kotlin中,并不支持类似java中的自动拆装箱。Int型不可自动转成Long型:
var a : Int = 1;
var b : Long = a.toLong();