Kotlin(四)高阶函数
2020-09-12 本文已影响0人
zhudms
Kotlin支持了部分函数式特性,其中一个典型的特征就是函数是头等公民。不仅可以像类一样直接在顶层定义一个函数,也可以在一个函数内部定义一个局部函数(P17)(常用于递归函数的结束条件,或不希望被外部调用的函数,一般不推荐--视频05)。
Kotlin支持在缺省函数名的情况下直接定义一个函数。此时调用此函数的时候只能将函数声明及函数体全部写一遍,(所以在高阶函数中,作为参数的函数可以省略方法名?)可能适用于只使用一次的函数吧。
一 高阶函数
指 使用其他函数作为参数或返回值的函数,极大地增加了语言的表达能力。
二 格式
要想将函数作为参数传递,必须遵循以下格式:
例如:test:(a:Int,Int)->Int
test 参数名称,不能省略
1. (Int,Int)函数参数,多个参数之间使用逗号分隔,参数可声明名称,也可不声明名称(正常声明函数时参数名称必须有,例如'test:')。若没有参数,则写成(),括号不可省略
2. ->固定连接符,不可变
3. Int 返回值类型,即使是Unit也不能省略
4. 当整个函数型参数可选时,可以将整个函数类型变为可选(例: ((errorCode:Int,errMsg:String?)->Unit)? )
5. 当函数参数返回的仍是函数时:“(Int)->((Int)->Unit)”
简化写法可以将后一半的括号省略:“(Int)->Int->Unit”
注意区分((Int)->Int)->Unit