写在开头
上一篇介绍了Kotlin的基本使用,发现这门语言主要还是面向函数进行编程,所以这一篇主要在函数方面介绍Kotlin。
基本函数
Kotlin作为一个面向函数的编程语言,函数的使用自然是最基本的,上一篇的main函数就是函数式语言的体现。最简单的调用函数的方法如下:
fun main(vararg arg: String){
println(add(1, 2))
}
fun add(a: Int, b: Int): Int{
return a + b
}
由上面的自定义函数add可知,函数的定义方式是fun <函数名>(<参数>)[: <返回类型>] { <代码块>},特别指出kotlin函数的返回类型如上面的add所示在参数后面添加表示,如果没有返回值的话可以不用写或者可以把Int换成Unit。当函数代码块中代码就是返回值就像add,可以直接写成单一表达式,如下。
fun add(a: Int, b: Int) = a + b
再来说一下参数,Kotlin中的参数使用Pascal符号定义,参数与定义变量常量不同,必须指定类型。这一点毫无疑问与java相同,但与java相同的是kotlin函数参数可以有默认值,当该参数有默认值时调用处该参不是必传的,不传就是默认值,这就是kotlin中变相的函数重载。
fun main(vararg arg: String){
println(add(1))
}
fun add(a: Int, b: Int = 5) = a + b
Lambda表达式
Kotlin中支持并使用了大量的Lambda表达式,谷歌使用Kotlin作为Android开发的一个官方语言据说也是因为能够使用这个表达式(手动滑稽)。java也在jdk8之后支持了Lambda表达式(λ),先以java为例说明。
λ表达式其实就是匿名函数在java中可以说是内部匿名类,一般语法是(参数)->{程序主体}。在java中能够作为λ表达式传入的一种形式就是函数式接口,函数式接口是只有一个抽象方法的接口,所以Runnable接口就是符合这么一个特