1.Kotlin的函数
1.1 函数的定义
// 函数名 函数参数列表 返回值: 写在这里的原因,方便返回推导 ,可省略
fun main(args: Array<String>): Unit {
//操作
}
1.2 较复杂的函数
// 参数是函数的方法
// 同时规定了函数参数的限定
fun f1(p:(Int,String)->Any){
}
1.3 函数与方法
class Foo {
// 把类中的称为方法
fun bar(p1: String, p2: Long): Any {
return "";
}
}
// 这个才是函数
fun foo(){
}
1.4 函数的类型
|
函数 |
类型 |
备注 |
| 1 |
fun foo(){} |
()->Unit |
| 2 |
fun foo(p:Int):String{} |
(Int)->String |
| 3 |
class Foo { fun bar(p1: String, p2: Long): Any {} } |
Foo.(String,Long)->String |
注意类中方法的类型写法1 |
| 4 |
class Foo { fun bar(p1: String, p2: Long): Any {} } |
(Foo,String,Long)->String |
注意类中方法的类型写法2 |
1.4 函数的引用
|
函数 |
类型 |
备注 |
| 1 |
fun foo(){} |
::foo |
|
| 2 |
fun foo(p0:Int):String{} |
::foo |
|
| 3 |
fun Foo{fun bar(p:String,p1:Long):Any{}} |
Foo:bar |
fun main(args: Array<String>): Unit {
val f: () -> Unit = ::f;
val g: ((Int, String) -> Any) -> Any = ::g;
val h: (Foo, String, Long) -> Any = Foo::bar
}
fun f() {
}
fun g(p: (Int, String) -> Any) {
}
class Foo {
fun bar(p1: String, p2: Long): Any {
}
}