Kotlin笔记函数(四)

97 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

1.函数

在这里插入图片描述

2. 函数声明

fun 函数名(参数列表) : 返回值类型 { 函数体 return 返回值 }

3. 返回值声明

/**
 * 没有返回值的函数
 */
fun makeFood():Unit{
    println("正在做饭...")
}

/**
 * 有返回值的函数
 */
fun  getName():String{
    return "Tom"
}

/**
 * 返回值为Nothing函数
 */
fun  writeFile():Nothing{
    throw Exception()
}

4. 函数参数

4.1 命名参数调用

fun main(args: Array<String>) {

    sayInfo(age = 19,name = "Tom")
    sayInfo("lucy",20)
}


fun sayInfo(name:String,age:Int){
    println("name:$name age:$age")
}

4.2 默认参数调用

fun main(args: Array<String>) {

    sum()
    sum(20.0)
    sum(50.0,30.0)
}
fun sum(a:Double=10.0,b:Double=20.0){
    println("$a + $b =${a+b}")
}

10.0 + 20.0 =30.0
20.0 + 20.0 =40.0
50.0 + 30.0 =80.0

4.3 可变参数调用

fun main(args: Array<String>) {

    getToal(1,2)  //3
    getToal(1,2,3,4,5) //15
}

fun getToal(vararg num:Int){
    var toal:Int=0;
    for (i in num){
        toal+=i
    }
    println(toal)
}

5. 表达式函数

如果在函数体中表达式能够表示成为单个表达式时,那么函数可以采用更加简单的表示方 式

//原始写法
fun getNameLength(name:String):String{
    return name.length
}

//简写
fun getNameLength(name:String)=name.length

6. 局部函数

函数套函数

fun getToalNum():Int{
    var toal:Int=0
    fun toal(vararg nums:Int){
        for (i in nums){
            toal+=i
        }
    }

    toal(2,3)
    return toal

}

7. 匿名函数

fun main(args: Array<String>) {

    getnums("+")(10,20)

}


fun getnums(c:String):(Int,Int)->Int{
    if (c=="+")
      return fun (a,b)=a+b
    else
        return fun (a,b)=a-b
}