kotlin笔记一
kotlin常识
Kotlin 是由JetBrains公司开发的,2011年发布第一个版本,2016年发布正式版。
C和C++都属于编译型语言,由编译器将源代码一次性的编译成计算机可识别的二进制文件。而Python和Javascript都属于解释性语言,在程序执行时一行行的解释成二进制数据。但Java和kotlin也属于解释型语言,他们先将源代码编译成class文件,然后再通过java虚拟机进行解释运行。
变量
Kotlin的语法更加简洁,同样的功能,比java减少50%的代码量,除此之外,还增加了很多现代高级语言的语法特性,而且杜绝了空指针问题。
kotlin中基本变量不需要声明变量类型,但是需要使用val或var两个关键字,val代表不可变变量,var代表可变变量。
但我们也可以显式的声明变量类型 例如 val a: Int =a
。
相比与java中的基本数据类型,在kotlin中的基本数据类型都是对象数据类型。
函数
函数和方法是同一个概念,只是叫法习惯不一样,并没有什么区别。
当一个函数中只有一行代码时,我们可以直接将唯一的一行代码写在函数定义的尾部,用等号连接,例如
1 | fun largerNumber(num1:Int,num2:Int):Int{ |
等于
1 | fun largerNumber(num1:Int,num2:Int):Int = max(num1,num2) |
其中,可以推导出函数返回值必然是一个Int,所以可以进一步简化
1 | fun largerNumber(num1:Int,num2:Int) = max(num1,num2) |
逻辑控制
if条件语句
和Java中的if语句唯一的区别就是可以拥有返回值
例如:
1 | val value = if(1>2){ |
返回值就是if语句每一个条件中的最后一行代码的返回值。
所以此时value的值为2
when条件语句
Kotlin中的when类似于java中的switch,但又比switch强大 ,when拥有返回值,只会返回匹配的行
例如
1 | fun getScore(name:String) = when(name){ |
并且还可以进行类型匹配
1 | fun checkNumber(num: Number) { |
除此之外还可以不传参,扩展其引用场景
1 | fun getScore(name: String) = when { |
循环语句
while循环和主流的while循环一致
如何创建[0,10]的区间数组
1 | val range = 0..10 |
如何创建[0,10)的区间
1 | val range = 0 until 10 |
for-in循环
1 | fun main() { |
使用step跳过
1 | fun main() { |