Some Notes

Kotlin Function

Kotlin Function 的一些用法。

默认参数 / Default arguments Kotlin 的允许提供变量的默认值,构造时可以选择不传参直接使用默认值。

data class Person(var age: Int = 28, var name: String, var nickName: String? = null)

fun main() { val p1 = Person(name = “YJY”) val p2 = Person(25, “YJY”) val p3 = Person(25, name = “YJY”, nickName = “Max”) } 命名参数 / Named Arguments 在 Kotlin 我们可以选择不传递已有默认值的参数,也可以使用命名参数来按随意顺序来传递参数。

fun reformat( str: String, normalizeCase: Boolean = true, upperCaseFirstLetter: Boolean = true, divideByCamelHumps: Boolean = false, wordSeparator: Char = ‘ ‘, ) {//}

fun main() { //normalizeCase、upperCaseFirstLetter 默认为 true //命名参数后,不需要按方法签名的参数顺序传参 reformat(“message”, wordSeparator = ‘|’, divideByCamelHumps = true) } 可变数量的参数 / Varargs 传递不定数量的参数,示例是一个计算所有 Int 参数总和的方法

fun cal(vararg numbers: Int) { var sum = 0 numbers.forEach { sum += it } println(“result=[$sum]”) }

fun main() { cal(1, 2, 3, 4, 5) } 单行表达式函数 / Single-expression functions 顾名思义,方法只有一行代码。

fun isAdult(person: Person): Boolean = person.age >= 18 局部函数 / Local functions 方法套方法,局部函数可以访问外部函数(闭包)的局部变量,太骚气了

fun isUserAllowToAccessWebsite(user: User): Boolean {

fun isAdult(): Boolean {
    return user.age >= 18
}
 
//用户未成年
if (!isAdult()) {
    return false
}
 
//...其他判断
return true }