Kotlin基础 | 青训营笔记

161 阅读3分钟

这是我参与「第四届青训营」笔记创作活动的第2天

本次学习的是Kotlin的基础知识

Kotlin作为一种更简洁、更高效、更安全的替代Java的语言,目前广泛的应用于Android开发中,本次笔记从Kotlin的基础入手,对学习到的相关知识进行相关的记录。

Kotlin基础

Kotlin中的函数

Kotlin中函数通过关键字fun来声明,参数的类型写在其名称后面,参数列表后面跟着返回类型,他们之间由一个冒号隔开,下面展示了一个函数的基本结构。

fun max(a : Int, b : Int): Int{
    return if(a > b) a else b
}

在Kotlin中,if是表达式,而不是语句。 上述函数可以变得更简单,因为在Kotlin中,如果一个函数是由单个表达式构成的,可以省略花括号与return语句。 对于表达式体函数来说,编译器会分析函数体的表达式,并把它的类型作为函数的返回类型,因此可以不声明其返回类型。如下面所示:

fun max(a : Int, b : Int) = if(a > b) a else b

Kotlin中的变量

Kotlin中声明变量的关键词主要有两个:

  • val: 不可变引用。 使用val声明的变量不能在初始化后再次赋值,对应Java中的final变量。
  • var: 可变引用。 使用var声明的变量可以在初始化后再次赋值,对应Java中的非final变量。
    默认情况下我们应该尽可能地使用val关键词来声明所用的Kotlin变量,仅在必要的时候转为var。

kotlin中引入包

Kotlin并不区分导入的是类还是函数,并且允许使用import关键词导入任何种类的声明。当然也可以在包名称后加上.* 来导入特定报的所有声明,但这种导入会使得包内所有的类可见。

枚举与“when”语法

Kotlin中存在when语法,他可以理解为Java中Switch的替代品,但使用地更加频繁,接下来将学习其相关语法:

when也是一个有返回的表达式。但与Java中的switch不同,when语句中不需要对所有分支使用break语句,并且我们也可以把多个值合并到同一个分支,只需要用逗号隔开这些值。如以下代码所示。

fun getWarmth(color: Color) = when(color){
    Color.RED, Color.ORANGE, Color.YELLOW -> "warm"
    Color.BLACK -> "neutral"
    Color.GREEN, Color.BLUE -> "cold"
}
>>>println(getWarmth(Color.ORANGE))
warm

在Java中,switch只允许使用常量作为分支条件,而Kotlin中的when则可以使用任何对象。如下面的示例:

fun demo(any: Any) {
    when (any) {
        //分支条件为常量
        "2" -> print("输入的内容为数字2")

        //分支条件为boolean值
        is String -> print("输入的内容是String类型的任意变量")

        //分支条件为集合
        setOf("3", "C") -> print("输入的内容是数字3C")

        //分支条件为枚举类中常量的字段
        Person.Tom.personName -> print("输入的内容是枚举类Person中变量Tom的姓名") 
    }
}

同时when语句是可以不带任何参数的,但当其无参时,分支条件必须是任意的boolean表达式

总结

本笔记总结了一些Kotlin的相关基础知识,对Kotlin中的函数、变量、以及when语法进行了相关的学习,后续将对Kotlin进行更加深入的相关学习。