文章目录

常见数据类型

【kotlin】数据类型和变量_数据类型
【kotlin】数据类型和变量_数据类型_02
【kotlin】数据类型和变量_赋值_03
电脑定义出来了各种数据类型来节省存储空间

栗子1

var name = "王力宏";
println(name);

查看控制台输出
【kotlin】数据类型和变量_数据类型_04

智能类型推断

【kotlin】数据类型和变量_kotlin_05
我们看到 Eclipse 有报错,int不能转为string
当我们第一次给name赋值时,kotlin认为name是个字符串类型,所以再给它赋值整型会报错
【kotlin】数据类型和变量_赋值_06
我们再看这个栗子,先给i赋值18,然后再修改为19,都没有报错的,当给i赋值9999…时,报错了
这是因为第一次赋值18时,kotlin认为这是一个整型数据,19,也在整型范围内,但是9999…已经超过了整型范围,所以报错了

显示类型声明

var i:Int = 18
i = 19
var j:Long = 99999999999999
var name:String = "王力宏"

但是值得注意的是
【kotlin】数据类型和变量_数据类型_07
当我们定义i是一个Byte数据类型时,赋值18是没有问题的,但是赋值128就会报错,因为Byte的取值范围就是-128~127

【kotlin】数据类型和变量_整型_08
这样直接var a是会报错的,因为智能类型推断是根据等号后边的值来判断的,编译器不知道a是什么类型
我们可以给a赋值

var a = 0.01

或是显式指定a的类型

var a:Short

数字和字符串

【kotlin】数据类型和变量_kotlin_09

常量与变量

【kotlin】数据类型和变量_整型_10
​​​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
【kotlin】数据类型和变量_赋值_11
其中​​​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​