美文网首页
Kotlin入门(三):函数(笔记)

Kotlin入门(三):函数(笔记)

作者: 睿丶清 | 来源:发表于2019-05-07 23:11 被阅读0次
Unit类型和Nothing类型区别
  • Unit类型 :在kotlin方法创建中,表示方法没有返回值,相当于java中的void,有些时候是可以省略不写,函数是正常返回的,例如:
fun main(args: Array<String>) {
}
  • Nothing类型:Nothing是kotlin中提供的一种特殊的数据类型,只用于函数返回类型的声明,不能用于变量声明,Nothing声明的函数永远不会正常返回,只会抛出异常。
使用命名参数调用函数

为了提高函数调用的可读性,在函数调用时可以采用命名参数调用。采用命名参数调用函数声明时不需要做额外工作。

fun main(args: Array<String>) {
    printArea(90.0 , 90.0)
    printArea(width = 39.0 ,height = 90.0)
    printArea(90.0,height = 90.0)
    printArea(height = 90.0 , width = 90.0)
    printArea(width = 90.0, 90.0)
}


fun printArea(width:Double,height:Double){
    val area = width * height
    print("$width * $height 的长方形面积为: $area")
}

编辑器效果:


1.png

可以看出,在使用命名参数调用时,一旦其中一个参数使用命名参数形式传递,则其后的所有参数都需要采用命名参数传递的方式,除非这个参数是最后一个参数,否则会有编译错误!

函数参数默认值

在声明函数时可以为其参数设置默认值,当函数调用时可以忽略该参数:

fun main(args: Array<String>) {
    buyCar()
    buyCar("大众")
}


fun buyCar(carName: String = "本田") {
    println("想买的汽车品牌是:$carName")
}

代码运行效果:


2.png
可变参数

kotlin函数的参数的个数可以变化的,它可以接受不确定数量的输入类型的参数(这些参数具有相同的类型),在声明该函数时可使用vararg关键来指定可变参数;例如:

fun main(args: Array<String>) {
    println(sum())
    println(sum(20.0))
    println(sum(20.0, 30.0))
    println(sum(20.0, 30.0, 40.0))
    println(sum(20.0, 30.0, 40.0, 60.0))
}


fun sum(vararg numbers: Double): Double {
    var total = 0.0

    for (number in numbers) {
        total += number
    }
    return total
}

运行项目查看结果:


3.png

还有就是涉及到函数如参数不止可变参数一种,例如:

fun main(args: Array<String>) {
    println(result(mu = 1))
    println(result(20.0 ,mu = 1))
    println(result(20.0, 30.0,mu = 1))
    println(result(20.0, 30.0, 40.0,mu = 1))
    println(result(20.0, 30.0, 40.0, 60.0,mu = 1))
}
fun result(vararg numbers: Double , mu :Int): Double {
    var total = 0.0

    for (number in numbers) {
        total += number
    }
    return total * mu
}

运行结果:


3.png
匿名函数

Kotlin中可以使用匿名函数,匿名函数不需要函数名,需要fun关键字声明,还需要参数列表和返回值类型声明,函数体包含必要的return语句。

fun main(args: Array<String>) {
    println(result(3, 2, '+'))
    println(result(3, 2, '-'))
}

fun result(n1: Int, n2: Int, opr: Char): Int {

    val resultFun = if (opr == '+')
        fun(a: Int, b: Int): Int {
            return a + b
        }
//        fun(a: Int, b: Int): Int = a + b
    else
        fun(a: Int, b: Int): Int = a - b

    return resultFun(n1, n2)
}

运行代码结果:


4.png

相关文章

网友评论

      本文标题:Kotlin入门(三):函数(笔记)

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