(1)函数的定义
fun main(args:Array<String>):Unit{
println(args.contentToString())
}
其中
main:函数名,
args:参数名,
Array<String>:参数类型
Unit:函数的返回值类型
注意:Kotlin中Unit相当于Java中void,意为,无返回值类型。
这里也可以省略,写作:
fun main(args: Array<String>){
println(args.contentToString())
}
(2)函数vs方法
方法:可以认为是函数的一种特殊形式。从形式上,有receiver的函数即为方法
函数如下:
fun yy(p:Int):String{
return ""
}
方法如下:
class Foo{
fun bar(p1:Int,p2:String):Any{
return ""
}
}
注意:在这里Foo就是bar方法的receiver
(3)函数的类型
fun foo(){} //函数类型为:()->Unit
//函数类型为:(Int)->String
fun foo(p:Int):String{
return ""
}
//函数类型为:Foo.(Int,String)->Any 或者 (Foo,Int,String)->Any
class Foo{
fun bar(p1:Int,p2:String):Any{
return ""
}
}
(4)函数的引用
Kotlin中函数的引用类似于C语言中的函数指针,可用于函数传递
fun foo(){} //引用为 ::foo
//引用为 ::foo
fun foo(p:Int):String{
return ""
}
//引用为 Foo::bar
class Foo{
fun bar(p1:Int,p2:String):Any{
return ""
}
}
(5)变长参数
Java中的可变参数:
public static void main(String... args){
}
Kotlin中的可变参数:
fun main2(vararg args:String){
}
(6)多返回值
fun multiReturnValues():Triple<Int,Long,Double>{
return Triple(5,10L,12.0)
}
fun main3(){
val (x,y,z)=multiReturnValues();
}
(7)默认参数
- 函数定义:
fun defaultParameter(x:Int,y:String,z:Long){
}
函数调用:
defaultParameter(5,"Hello",0L)
- 函数定义:
fun defaultParameter(x:Int,y:String,z:Long=0L){//注意,这里的默认参数一定要放到最后
}
函数调用:
defaultParameter(5,"Hello")
(8)具名参数
函数定义:
fun defaultParameter(x:Int=5,y:String,z:Long=0L){
}
函数调用:
defaultParameter(y="Hello")