反引号中的函数名
>Kotlin可以使用空格和特殊字符对函数命名,不过函数名要用一对反引号括起来。>为了支持Kotlin和Java互操作,而Kotlin和Java各自却有着不同的保留关键字,不能作为函数名,使用反引号括住函数名就能避免任何冲突。
匿名函数
定义时不取名字的函数,我们称之为匿名函数,匿名函数通常整体传递给其他函数,或者从其他函数返回。
>匿名函数对Kotlin来说很重要,有了它,我们能够根据需要制定特殊规则,轻松定制标准库里的内置函数。
函数类型与隐式返回
>匿名函数也有类型,匿名函数可以当作变量赋值给函数类型变量,就像其他变量一样,
匿名函数就可以在代码里传递了。变量有类型,变量可以等于函数,函数也会有类型。函数的类型,由传入的参数和返回值类型决定。
和具名函数不一样,除了极少数情况外,匿名函数不需要return关键字来返回数据,匿名函数会隐式或自动返回函数体最后一行语句的结果。
函数参数
和具名函数一样,匿名函数可以不带参数,也可以带一个或多个任何类型的参数,需要带参数时,参数的类型放在匿名函数的类型定义中,参数名则放在函数定义中。
it关键字
>定义只有一个参数的匿名函数时,可以使用it关键字来表示参数名。当你需要传入两个值参,it关键字就不能用了。
类型推断
>定义一个变量时,如果已把匿名函数作为变量赋值给它,就不需要显示指明变量类型
lambda
我们将匿名函数称为lambda,将它的定义称为lambda表达式,它返回的数据称为lambda结果。为什么叫lambda? lambda也可以用希腊字符入表示,是lambda演算的简称,lambda演算是一套数理演算逻辑,由数学家Alonzo Church(阿隆佐.丘齐)于20世纪30年代发明,在定义匿名函数时,使用了lambda演算记法。
定义参数是函数的函数
函数的参数是另外一个函数
简略写法
如果一个函数的lambda参数排在最后,或者是唯一的参数,那么括住lambda值参的一对圆括号就可以省略。