1.数据类型
java中有8中基本数据类型byte、short、int、long,float、double,char、boolean。
对应的有8中包装类,或者引用类型。Byte、Short、Int、Long、Float、Double、Character、Boolean。
在kotlin中,没有基本数据类型,只有8种引用数据类型。
Byte、Short、Int、Long、Float、Double、Char、Boolean。
var byte:Byte=8
var short:Short =16
var int: Int = 32
var long:Long = 64
var float:Float = 32.0f
var double:Double = 64.0
var char:Char = 'c'
var b :Boolean = true
虽然我们在声明时只能声明为引用数据类型。但是Kotlin编译器会把他们编译成基本数据类型。
LOCALVARIABLE b Z L8 L9 9
LOCALVARIABLE char C L7 L9 8
LOCALVARIABLE double D L6 L9 6
LOCALVARIABLE float F L5 L9 5
LOCALVARIABLE long J L4 L9 3
LOCALVARIABLE int I L3 L9 2
LOCALVARIABLE short S L2 L9 1
LOCALVARIABLE byte B L1 L9 0
查看Kotlin编译后字节码的方法:
1)两次Shift键,输入show kotlin。
2)也可以tools--Kotlin--show kotlin byteCode
2.变量的声明:
关键字 变量名 类型 赋值
var name:String = "xiaohua"
3.关键字var和val
var 声明的变量可以修改。val声明的变量不可以修改。
val name:String ="xiaohua"
var age:Int = 20
age+=1
4.类型推断。
对于已经声明并赋值的变量,在编码阶段可以不指定数据类型,编译器会自动推断其数据类型,在编译后的字节码中给变量指定类型。
上面声明的name age,可以写成以下形式,编译器也不会报错的。
var name = "xiaohua"
var age = 20
5.编译时常量
MAX就是定义的一个常量。
1)编译时常量只能定义在函数之外。因为编译时常量必须在编译时赋值。而函数都是在运行时才调用。
2)编译时常量只能是基本数据类型。
const val MAX = 100
fun main() {
var a = MAX
}
6.数组的声明:两种方式
1)一种是使用函数arrayOf()。比如声明一个int数组
val arr = arrayOf(1, 2, 3)
2)另外一种是使用工厂函数。
//Array函数,第一个参数是数组长度,第二个参数跟一个表达式。
val arr = Array(3, { i -> i })
//遍历数组
for(item in arr){
println(item)
}