美文网首页
Kotlin 02 函数

Kotlin 02 函数

作者: 鳯寯 | 来源:发表于2020-09-24 15:10 被阅读0次

    语法

    [访问控制符]  fun [函数名] ( [参数列表...] ) : [返回值类型]{

    [函数体]

    }

    Kotlin 中 使用 关键字 fun 声明 函数

    访问控制符 默认为 public

    fun fun1(value:String):Boolean{

        if (value=="JOEL"){

            return true

        }else{

            return false

        }

    }

    如上代码,声明 函数 fun1 需要一个参数 value  返回 Boolean 类型的值。

    参数

    Kotlin 中函数的参数 用 name:type 的形式定义,多个参数之间使用 逗号 分割,每个参数必须显示的指定数据类型

    fun fun2(p1: String, p2: Int) {

        println("$p1 $p2")

    }

    函数中的参数是不可变的,不能在函数体中给参数重新赋值。

    参数默认值

    Kotlin中可以给参数指定默认值,来减少函数重载

    fun main() {

        fun2("JOEL",1)

        fun2("JOEL",1,3.0f)

    }

    fun fun2(p1: String, p2: Int, p3: Float = 1.0f) {

        println("$p1 $p2 $p3")

    }

    第2行 输出结果: JOEL 1 1.0

    第3行 输出结果: JOEL 1 3

    有默认值的参数,当调用不传值时,使用默认值。否则使用传的值。

    当有默认值的参数,不位于参数列表的末尾,调用函数时位于默认值参数后面的参数,需要使用 具名参数(name=value)传值。例如:

    fun main() {

        fun3("JOEL" ,p3 = 3.0f)

    }

    fun fun3(p1: String, p2: Int=0, p3: Float) {

        println("$p1 $p2 $p3")

    }

    输出结果: JOEL 0 3.0

    如上代码,函数 fun3 第2个参数 p2 默认值为0。在调用函数时,不给参数p2传值时,参数p3就需要显示的指定参数名。

    可变数量参数

    Kotlin中使用 修饰符 vararg 标记可变数量参数,通常位于参数列表的末尾,参数具有数组类型。

    fun main() {

        fun4("J","O","E","L")

    }

    fun fun4(vararg p0: String){

        p0.forEach {

            println(it)

        }

    }

    输出:J

        O

        E

        L

    一个函数只能有 一个 参数可以定义为可变数量参数

    当可变数量参数不位于参数列表末尾时,其后的参数使用 具名参数 (name=value)传值

    伸展(spread)操作符

    调用具有可变数量参数的函数时,可以一个一个传值,也可以 传数组,在数组前面加上 *

    fun main() {

        val sArr = arrayOf("K","O","T")

        fun4(*sArr)

    }

    fun fun4(vararg p0: String){

        p0.forEach {

            println(it)

        }

    }

    输出: K

          O

          T

    单表达式函数

    当函数体只有一行代码时,可以省略 花括号 ,使用 =  连接 函数 和 函数体。

    fun fun4(a: Int, b: Int): Int = a + b

    fun fun5(a: Int, b: Int) = a + b

    fun fun6(a: Int, b: Int): Unit = println(a + b)

    当函数的返回类型不为Unit 时。可以省略返回类型,Kotlin 根据 函数体 自动推导返回类型。

    返回值

    当函数无返回值时,他的返回类型是Unit。返回Unit的函数,返回类型 和 返回值 可以省略。

    单表达式函数,可以省略返回类型

    有函数体的函数,必须显示声明返回类型和返回值。

    fun fun7(vararg p0: String) {

        p0.forEach {

            println(it)

        }

    }

    fun fun8(vararg p0: String): String {

        var str = ""

        p0.forEach {

            str += it

        }

        return str

    总结

    1,使用 fun 关键字 声明函数

    2,函数参数 以 name:type 的形式定义,多个参数使用 逗号 分割

    3,参数可以指定默认值,位于默认值参数之后的参数,使用 具名参数(name=value)的形式调用

    4,使用关键字 vararg 定义可变数量的参数

    5,调用具有 vararg 修饰参数 的函数时,可以使用 伸展操作符 * 传值

    6,单表达式函数,可以省略返回类型和函数体,使用 = 连接 函数 和 函数体

    7,返回Unit的函数,可以省略返回值和返回类型。

    相关文章

      网友评论

          本文标题:Kotlin 02 函数

          本文链接:https://www.haomeiwen.com/subject/efozyktx.html