编程语言之Kotlin.1020
总是啥都想学,但又啥都学不精
最早接触编程是在2018年,我刚上初中的时候,那时候接触的是中文编译语言—易语言
接着是C/C++(学了点皮毛 到现在忘干净了)
接着到高中玩电脑时间就少了.就没在钻研这些了。
发现更多还是写Android程序实用些,想学 于是就在java和kotlin中选择了后者。
只是突然想学Kotlin了,脑子一热谁知道能坚持多久呢…
不过有点编程思维 学会一门语言,在接触其他编程语言还是较为容易上手的。(我没有)
文中摘要部分来自书籍 — 《第一行代码(第3版)》 (郭霖)
1、变量
val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能重新赋 值,对应Java中的final变量。
var(variable的简写)用来声明一个可变的变量,这种变量在初始赋值之后仍然可以再被重新 赋值,对应Java中的非final变量。
例
1 | fun main() { |
会报错 因为val不可变的变量
正确是改成var可变的变量
1 | fun main() { |
Kotlin对象数据类 | Int | Long | Short | Float | Double | Boolean | Char | Byte |
---|---|---|---|---|---|---|---|---|
数据类型说明 | 整型 | 长整型 | 短整型 | 单精度浮点型 | 双精度浮点型 | 布尔型 | 字符型 | 字节型 |
2.1、函数
1 | fun main() { |
Kotlin中必须先写 laegenumber() 函数 才能在main函数中调用
(num1:Int, num2:Int)中 num相当于参数名这个可随意更改 重要的是数据类型
Kotlin函数的语法糖
largerNumber()函数就只有 一行代码,于是可以将代码简化成如下形式:
return关键字也可以省略了,等号足以表达返回值的意思。
可以理解为把”{return}”是一个集群,代码少 直接上“=”
1 | fun largerNumber(num1: Int, num2: Int): Int = max(num1, num2) |
Kotlin出色的类型推导机制
由于max()函数返回的是一个 Int值,而我们在largerNumber()函数的尾部又使用等号连接了max()函数,因此Kotlin可 以推导出largerNumber()函数返回的必然也是一个Int值,这样就不用再显式地声明返回值 类型了,代码可以进一步简化成如下形式:
1 | fun largerNumber(num1: Int, num2: Int) = max(num1, num2) |
2.2、if条件语句
1 | //1.直接给var p=0 赋值 再return |
Kotlin中的if语句相比于Java有一个额外的功能,它是可以有返回值的,返回值就是if语句每
一个条件中最后一行代码的返回值。因此,上述代码就可以简化成如下形式:
1 | //2.直接var p=if() 再return |
你会发现p其实也是一个多余的变量,我们可以直接将if语句返回, 这样代码将会变得更加精简,如下所示:
1 | //3.直接 return if() |
回顾一下语法糖,当一个函数只有一行代码时,可以省略函数体部分,直接将这一 行代码使用等号串连在函数定义的尾部。虽然上述代码中的largerNumber()函数不止只有一 行代码,但是它和只有一行代码的作用是相同的,只是返回了一下if语句的返回值而已,符合 该语法糖的使用条件。那么我们就可以将代码进一步精简:
1 | //4.语法糖 省略函数体部分 在函数定义尾部加等号 |
前面我之所以说这个语法糖非常重要,就是因为它除了可以应用于函数只有一行代码的情况, 还可以结合Kotlin的很多语法来使用,所以它的应用场景非常广泛。 当然,如果你愿意,还可以将上述代码再精简一下,直接压缩成一行代码:
1 | //5.只有一个函数 直接压缩成一行代码 |
总结:
1.直接给var p=0 赋值 再return
2.直接var p=if() 再return
3.直接 return if()
4.语法糖 省略函数体部分 在函数定义尾部加等号
5.只有一个函数 直接压缩成一行代码
2.3、when条件语句
if语句
在Kotlin中,
==
用于比较两个值是否相等,而=
是用于赋值的运算符。当你想检查name
是否与特定字符串相等时,应该使用==
。例如,name == "Tom"
是在检查name
是否等于"Tom"
。
1 | fun main(){ |
when语句
when语句允许传入一个任意类型的参数,然后可以在when的结构体中定义一系列的条件,
格式 是: 匹配值 -> { 执行逻辑 }
1 | //一种 |
is关键字就是类型匹配的核心,它相当于Java中的instanceof关键字。由于 checkNumber()函数接收一个Number类型的参数,这是Kotlin内置的一个抽象类,像Int、 Long、Float、Double等与数字相关的类都是它的子类,所以这里就可以使用类型匹配来判断传入的参数到底属于什么类型,如果是Int型或Double型,就将该类型打印出来,否则就打 印不支持该参数的类型。
1 | fun main(){ |
2.3、循环语句
打印俩写法
1 | println("c="+d) |
函数记录
1 | //01 |