快速入门Kotlin(1)
写在最前面
这系列文章是总结《第一行代码》中对Kotlin的介绍而写下的,是自己的总结和经验分享
适合有过Java使用经验,或者有面向对象编程经验的读者速成Kotlin
如果您是完全的0基础,可能阅读上会有一些困难
分号
kotlin中是不需要在结尾加分号的
变量
只能使用val 和 var 作为变量
val:不可变的变量
var:可变的变量
显示声明
我们可以显式声明变量,直接告诉kt我们生成的变量的类型
1 | val a:Int = 10 |
指定了不可变变量a的类型是int
对象数据类型
在Kotlin中,原本Java的基本数据类型都变成了数据对象类型,拥有自己的方法和继承结构,对应下来为:
Int Long Short Float Double Boolean Char Byte
函数
定义函数
比方说
1 | fun methodName(param1:Int , param2:Int):Int { |
methodName就是方法名,没什么好说的
括号内的是参数列表,每个的格式是“参数名字:类型”,多个之间使用 , 分开
冒号后面是返回类型,不写即为空
当一个函数只有一行代码的时候,Kotlin允许我们不编写函数体,直接将唯一的代码写在尾部并用等号连接fun methond(num1:Int,num2:Int): Int = max(num1,num2)
甚至因为Kt优秀的推导机制,可以写作:fun methond(num1:Int,num2:Int) = max(num1,num2)
逻辑控制
if-else
Kt中的if else 和Java完全相同,并且在此基础上增加了一个特性:它可以具有返回值
Kt中的if else 的返回值是语句中每一个条件最后一行代码的返回值,比如我们需要一个获得二者中更大值的函数,我们可以写作:
1 | fun LargeNum(num1:Int, num2:Int): Int{ |
最终可以精简为:fun LargeNum(num1:Int , num2:Int) = if(num1 > num2) num1 else num2
when
when可以看作是switch的强化版
when允许传入一个任意类型的参数,之后在when的结构体中定义一系列的条件:
1 | when(变量){ |
比如一个查询学生成绩的代码可以写为:
1 | fun getScore(name:String) = when(name){ |
除了精准匹配之外,when还支持类型匹配
1 | fun checkNumber(num:Number){ |
此外,when语句也可以不带参数,把对应的表达式完整写在结构体中即可:
1 | fun getScore(name:String) = when{ |
Kotlin中,判断字符串或对象是否相等可以直接使用==
循环语句
while循环和Java完全相同
for-i被kotlin直接舍弃,而for each 被大幅度加强为了for in
区间
我们可以使用..
来创建一个区间,比如val range = 0..10
两端都是闭区间,意味着0和10都被包含
有了区间之后我们就可以使用它来进行for循环了,比如
1 | fun main()}{ |
不过我们知道:在程序设计中,还是左闭右开的范围更实用,我们可以使用until
来设计一个左闭右开的区间val range = 0 until 10
step
正常情况,for in使用递增,以此来达到我们想要的for-i效果,不过我们可以利用step关键字来跳过某一步for(i in 0 until 10 step 2){}
这里的step2表示每次以2作为间隔来递增,即每一次都是i = i+2的效果
downTo
利用downTo
进行降序的区间,两边都是闭区间。如10 downTo 1
即是[10,1]
step同样可以被用于downTo