文章目录
常见数据类型
电脑定义出来了各种数据类型来节省存储空间
栗子1
var name = "王力宏";
println(name);
查看控制台输出
智能类型推断
我们看到 Eclipse 有报错,int不能转为string
当我们第一次给name赋值时,kotlin认为name是个字符串类型,所以再给它赋值整型会报错
我们再看这个栗子,先给i赋值18,然后再修改为19,都没有报错的,当给i赋值9999…时,报错了
这是因为第一次赋值18时,kotlin认为这是一个整型数据,19,也在整型范围内,但是9999…已经超过了整型范围,所以报错了
显示类型声明
var i:Int = 18
i = 19
var j:Long = 99999999999999
var name:String = "王力宏"
但是值得注意的是
当我们定义i是一个Byte数据类型时,赋值18是没有问题的,但是赋值128就会报错,因为Byte的取值范围就是-128~127
这样直接var a是会报错的,因为智能类型推断是根据等号后边的值来判断的,编译器不知道a是什么类型
我们可以给a赋值
var a = 0.01
或是显式指定a的类型
var a:Short
数字和字符串
常量与变量
val
指定常量,不能被修改,所以给number重新赋值时会报错
验证取值范围
var aByte:Byte = Byte.MAX_VALUE
var bByte:Byte = Byte.MIN_VALUE
println("Byte最大值:"+aByte)
println("Byte最小值:"+bByte)
var aLong:Long = Long.MAX_VALUE
var bLong:Long = Long.MIN_VALUE
println("Long最大值:"+aLong)
println("Long最小值:"+bLong)
var aInt:Int = 0b0011
println("aInt的值:"+aInt)
查看log
其中0b
开头的是二进制写法
好的编程习惯
在Kotlin中定义一个变量,只允许在变量前申明两种关键字: val
和 var
val(value的简写)用来申明一个不可变变量,对应java中的final
var(variable的简写)用来声明一个可变变量
kotlin 不用写分号
如果显示声明一个变量
val a:Int = 10
你可能发现 Kotlin 中 Int 首字母大写,而 java 中 int 的首字母是小写的,这表示 Kotlin 完全抛弃了 Java 中的基本数据类型,全部使用了对象数据类型。在 Java 中 int 是关键字,在 Kotlin 中 Int 变成了一个类,拥有自己的方法和继承结构
一个好的编程习惯是,除非一个变量明确允许被修改,否则都应该给它加上 final
关键字。所以永远优先使用val
来声明一个变量,当 val
没办法满足你的需求时再用var