匿名函数既可以看作是函数,也可以看作是一个对象,或者说是在把函数当尴尬刁难象来使用,就像上边我们将匿名函数赋值给了getStringLength变量;
匿名函数也可以通过lambda表达式的方式表示,我们也可以这样理解:getStringLength是一个函数类型的变量,(String)-> Int 就是函数类型,表示接收一个String类型的参数,返回Int类型的值;
val getStringLength : (String) -> Int = {
//参数名称可以自定义,这里为input,就是上面String类型的参数
input -> input.length
}
复制代码
匿名函数通常作为高阶函数的参数来使用;
3.3 高阶函数
一个函数可以将另一个函数作为参数来使用,我们称之为高阶函数;
//5.3 高阶函数 将其他函数作为参数的函数 下面这个函数需要接收一个字符串和一个函数
fun stringMapper(str : String, mapper : (String) -> Int) : Int {