1.变量定义
基本数据类型
Kotlin | Java |
---|---|
Byte | byte |
Short | short |
Int | int |
Long | long |
Float | float |
Double | double |
Char | char |
Boolean | boolean |
通过以上对比可以发现,Kotlin相比较Java数据类型变化为类型首字母大写,有点类似Java中的装箱操作,但是需要注意Kotlin中没有装箱操作,该操作交给编译器来处理。
定义变量与常量
关键字 | 意义 | 表达式 |
---|---|---|
val | 定义常量 | val <标识符> : <类型> = <初始化值> |
var | 定义可变量 | var <标识符> : <类型> = <初始化值> |
注意:val是指该该关键字修饰变量的只能赋值一次,类似于java中的final;
变量在变量时,可以不指定变量的数据类型,但在使用前必须初始化,在系统编译时,自动判断该变量类型,例如:
val a: Int = 1
val b = 1.2 // 系统自动推断变量类型为Float
val c: Int // 如果不在声明时初始化则必须提供变量类型
c = 1 // 明确赋值
var x = 5 // 系统自动推断变量类型为Int
x += 1 // 变量可修改
x +=a //系统不支持该种操作
var a:Int = 3;
var b = a.toLong();//必须类型转换,不能直接赋值给Long类型(kotlin不像Java可以拆装箱)
数组
kotlin | Java |
---|---|
IntArray | int[] |
ShortArray | short[] |
LongArray | long[] |
FloatArray | float[] |
DoubleArray | double[] |
CharArray | char[] |
数组的基本使用
val data:IntArray = intArrayOf(1,2,3,4) //定义数组 并初始化赋值
println(data[2]) //获取数组中的某个内容
data[3] = 5; //重新赋值变量
println("数组长度"+data.size)//获取数组的长度
println(data.joinToString("*"))//将数组转为String字符串 默认不传中间用逗号隔开 可根据需要传入字符类型
println(data.slice(1..3)) //获取某段内容 例如获取1到3区间的内容
引用数据类型
引用数据类型最常用的就是String类型,在Kotlin中定义字符串的表示也是用String表示,但是需要注意以下两点
语言 | 表示 | 意义 |
---|---|---|
Kotlin | == | 表示字符串中的值是否相同 |
Java | equal | 表示字符串中的值是否相同 |
Kotlin | === | 表示字符串的地址值是否相同 |
Java | == | 表示字符串中的地址值是否相同 |
字符串模板
在Java中使用+来拼接字符串,但在Kotlin中如果使用+来拼接,可读性就比较差,因此出现了字符串模板的概念
- 使用$添加在变量前,表示引用变量;
- 如果需要对变量进行计算可以使用${},将运算表达式放在{}中;
- 如果输出的字符串中包括特殊字符使用 “\”来转义,例如" " “,”$"
2.函数定义
有返回值:
函数的定义使用关键字 fun,格式为 fun 函数名(参数):返回值类型,其中参数定义为 变量名:参数类型,例如:
fun getResult(a: Int, b: Int): Int {
return a + b
}
无返回值
如果没有返回值的,则可不写返回值类型例如:
fun getSet(a:Int,b:Int){
}
可变参数
函数参数可变时使用 varage 关键字标示,例如
fun getSets(vararg v:Int){
for(vt in v){
println("result"+v)
}
}
lambda表达式
可以省略方法名,使代码简洁
val sumLambada:(Int,Int)->Int = {a,b->a+b}
println(sumLambada(3,4))