智能类型推断

在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();

标签: Kotlin

添加新评论