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

上一篇下一篇

猜你喜欢

热点阅读