Kotlin学习笔记

因为学习Android开发的原因,需要先对Kotlin进行学习。在进行粗略的学习后发现Kotlin跟Java有着千丝万缕的关系,但同时在使用上却像Python。

变量

在Java中申明变量需要指定变量的类型,而在Kotlin中只使用valvar两个关键字。

val

value的简写,用于声明一个不可变的变量,对应Java中final

var

variable的简写,用于声明一个可变的变量。

类型推导机制

Kotlin会根据给变量的赋值自动推导变量类型。

1
2
val a = 10
//a为整型变量
1
2
val b = "hello word!"
//b为字符串变量
显示声明变量类型

有的时候我们不想要Kotlin进行类型推导或者要延迟赋值,这个时候就可以使用显示声明。

1
val a: Int = 10
数据类型
Java基本数据类型 Kotlin对象数据类型 数据类型说明
int Int 整型
long Long 长整型
short Short 短整型
float Float 单精度浮点型
double Double 双精度浮点型
boolean Boolean 布尔型
char Char 字符型
byte Byte 字节型

在Kotlin中,所有的数据类型都不是基本数据类型,而是对象数据类型,拥有自己的方法与继承结构。

函数

main函数
1
2
3
fun main() {
...
}

在Kotlin 1.3之前的版本中,main函数必须具有一个Array<String>类型的参数。

1
2
3
fun main(args: Array<String>) {
...
}
自定义函数
1
2
3
fun largerNumber(num1: Int, num2: Int): Int{
return max(num1, num2)
}
语法糖

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

若函数只有一行代码时,我们可以省略函数体,将唯一一行代码写在函数定义的尾部,中间用等号相连。

1
fun largerNumber(num1: Int, num2: Int): Int = max(num1, num2)

由于类型推理机制,我们也可以省略函数的返回值类型。

1
fun largerNumber(num1: Int, num2: Int) = max(num1, num2)

逻辑控制

if语句

Kotlin中的if语句与Java中的if语句几乎没有区别,正常情况下按照Java写就好。

if语句返回值

Kotlin中if语句可以有返回值,返回值是每个条件中的最后一行代码的返回值。

1
2
3
4
5
6
7
8
fun largerNumber(num1: Int, num2: Int): Int{
val max = if(num1 > num2){
num1
} else {
num2
}
return max
}

进行精简。

1
2
3
4
5
6
7
fun largerNumber(num1: Int, num2: Int): Int{
return if(num1 > num2){
num1
} else {
num2
}
}

因为函数体内其实就一个return,我们还可以把返回值写到函数定义最后一行。

1
fun largerNumber(num1: Int, num2: Int)= if(num1 > num2)num1 else num2
when语句

when有点类似于Java中的switch,但更加强大。

1
2
3
4
5
6
fun getScore(name: String){
when(name){
"Tom" -> print("Tom's score is 100")
else -> print(name + "'s score is 0")
}
}

test