Kotlin语法二函数
2017-06-06 本文已影响20人
Carve_Time
1.函数定义与调用
//定义
private fun sum(a:Int,b:Int):Int{
return a+b
}
//调用
sum(1,2);
2.函数参数
2.1 默认参数
Kotlin 中的函数可以声明一个参数的默认值,在没有对应值输入时自动取默认值,大大减少了方法重载。
fun add(a:Int,b:Int,c:Int=4):Int{
return a+b+c
}
println("${add(1,2)}")////默认 c 为 4,输出 7
println("${add(1,2,3)}")//输入 c 值,不使用默认值,输出 6
2.2 可变参数
使用 vararg 修饰参数列表的最后一项,表示这个参数的数量是可变的。
fun add(a:Int,b:Int,vararg n:Int):Int{
var sum = a+b
for (i in n){
sum += i
}
return sum
}
println("${add(1,2,3,4,5,6)}")//21
3.函数返回值
如果一个函数没有返回值,则它的返回值类型是Unit,一般会省略。
fun sayHello(name: String): Unit{
println("My name is $name.")
}
4.函数类型
使用函数类型和使用其他类型一样,可以定义一个类型为常量或变量,并将函数赋值给它。
fun sum(a:Int,b:Int,c:(Int,Int)->Int):Int{
return c (a,b)
}
fun add(a:Int,b:Int):Int{
return a + b
}
println("${sum(2,3,::add)}") // 5
5.扩展函数
声明一个扩展函数,我们需要用一个 接收者类型 也就是被扩展的类型来作为他的前缀。
//为Int扩展一个add函数
fun Int.add(x:Int):Int{
return this+x
}
//调用
print(123.add(321))//444
6.中缀表示法
infix fun Int.add(x:Int):Int{
return this+x
}
// 用中缀表示法调用扩展函数
print(123 add 123)
7.单表达式函数
当函数返回单个表达式时,可以省略花括号并且在 = 符号之后指定代码体即可
fun double(x: Int): Int = x * 2
当返回值类型可由编译器推断时,显式声明返回类型是可选的
fun double(x: Int) = x * 2
参考
https://kotlinlang.org/docs/reference/functions.html
http://www.kotlincn.net/docs/reference/functions.html