Step into Kotlin - 04 - 函数

目录

摘要

创建函数,调用函数,默认参数,带名参数,可变长参数,Unit,函数作用域

函数

定义函数

格式

fun functionName(argumentName: arguemntType): returnType {function body}
  • 以 fun 关键字进行定义,函数只有一句时可以加上 “=” 省略 “{}”
  • 参数名写在参数类型之前

//  只有一句时
fun addOne(m: Int): Int = m + 1

fun addTwo(m: Int): Int {
    return m + 2
}

调用函数

addOne(2)

函数参数

默认参数

调用某些方法时可以不指定所有参数,而使用默认值

fun decorate(str: String, left: String = "[", right: String = "]") = left + str + right

println(decorate("abc"))    //  [abc]
带名参数

可以在调用函数时,指定参数的名称

decorate("abc", right = ">")
可变长度参数
  • 可变长参数使用 vararg 修饰
  • 使用变长参数时只能一个个传值,不能直接使用外部的 Array,除非使用 * 表示将 Array 中的每个元素当做参数处理
fun capitalizeAll(vararg args: String): List<String> {
    return args.map { arg ->
        arg.capitalize()
    }
}
println(capitalizeAll("a", "b", "c"))  //  [A, B, C]

val array = arrayOf("d", "e", "f")
println(capitalizeAll("a", "b", "c", *array))   //  [A, B, C, D, E, F]

Unit

当返回类型为 Unit 时,表示没有返回值,相当于 Java 中的 void,此时也可以省略 Unit 的声明。

fun echo(s: String): Unit {
    println(s)
}

fun echo2(s: String) {
    println(s)
}

函数作用域

Kotlin 中函数可以直接定义在文件中,而不需要依托任何类。其中定义在 class 或 object 中的函数又被称为成员函数 (Member Function)。除此之外,Kotlin 中还有一种特殊的函数:本地函数 (Local Function),本地函数是定义在函数内部的函数。

fun factorialTail(n: Int): Int {
    val zero = 0
    //  本地函数 loop()
    fun loop(acc: Int, n: Int): Int =
            if (n == zero) acc else loop(n * acc, n - 1)
    return loop(1, n)
}

本地函数可以访问外部函数的私有成员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值