kotlin 基础 6 函数和函数式表达式
2019-04-05 本文已影响7人
zidea

函数作为语言的基石,通过一个一个函数累加搭建出大型应用。函数作为最小代码单元。今天我们就来看一看在 kotlin 中如何实现函数和使用函数的。
fun main(arg:Array<String>) {
var result = add(3,5)
println("result = ${result}")
}
fun add(x: Int, y: Int): Int {
return x + y
}
定义函数可以没有返回值,这种情况可以返回类型指定为 Unit
fun printHello(s:String):Unit{
println("Hello, $s")
}
在 kotlin 中也支持可变参数,可以接受任意多参数,然后将其整体看做数组来处理
fun sum(vararg num:Double):Double{
var sum = 0.0
for( n in num){
sum += n
}
return sum
}
println(sum(1.0,2.0,3.0))
println(sum(1.0,2.0,3.0,5.0,6.0))
println(sum())
fun sum(vararg num:Double):Double{
return num.sum()
}
在kotlin中也可以将数组作为参数传入到这个接受可变参数的函数内。
var v = doubleArrayOf(1.0,2.2,3.3,5.5)
println(sum(*v))
如果发现在大括号中只有一行业务逻辑,而且函数有返回值可以让等于表达式
fun add(x: Int, y: Int): Int = x + y
在 kotlin 中函数也是一等公民,这就表示 kotlin 也是主打函数式编程。
var i = {x:Int,y:Int -> x + y}
println(i(3,5))
变量 i 就是函数,调用和其他函数调用方式没有什么区别println(i(3,5))
,这种方式和 c++ 中函数指针非常类似。
也可以这样声明一个函数然后赋值给一个变量
var j:(Int,Int) -> Int = {x,y -> x + y}
看起来```(Int,Int)->Int 定义了类型,也就是定义了一个函数类型,用来定义我们函数是如何写的,参数个数和类型以及返回值。后面就是我们函数体了。
