Kotlin 函数式编程特性深度解析
1. 命名 Kotlin 函数类型
Kotlin 不支持 Kotlin 中定义类型的单抽象方法(SAM)转换,更倾向于使用函数类型。不过,SAM 相对于传统函数类型有一些优势,比如命名函数类型和命名参数。当函数类型定义较长或者多次作为参数传递时,给函数类型命名是很有好处的;当仅通过参数类型无法明确每个参数的含义时,使用命名参数也非常有用。
我们可以通过类型别名和函数类型中的命名参数,为函数类型的参数和整个定义命名,这样在使用函数类型的同时就能具备 SAM 的所有优势。
2. 函数类型中的命名参数
以往我们看到的函数类型定义,通常只指定了参数类型,而没有指定参数名。参数名一般在函数字面量中指定,例如:
fun setOnItemClickListener(listener: (Int, View, View)->Unit) {
// code
}
setOnItemClickListener { position, view, parent -> /* ... */ }
但当参数含义不明确时,开发者可能不清楚参数的具体意义。在上述函数类型定义中,这可能会带来困扰。
解决办法是定义带有命名参数的函数类型,示例如下:
(position: Int, view: View, parent: View)->Unit
这种表示法的好处是,IDE 会将
超级会员免费看
订阅专栏 解锁全文
18

被折叠的 条评论
为什么被折叠?



