
52
|
第
2
章
2.9
使用
to
函数创建
Pair
实例
问题
如何创建 Pair 类的实例(通常将其作为映射的条目)?
解决方案
与其直接实例化 Pair 类,不如使用中缀函数。
讨论
映射由条目组成,这些条目是键值对。为了创建映射,Kotlin 提供了一些有用的顶层函
数,例如 mapOf,它允许你使用一个包含 Pair 实例的列表来创建 map。标准库中的
mapOf 函数的签名如下所示:
fun <K, V> mapOf(vararg pairs: Pair<K, V>): Map<K, V>
Pair 是一个拥有两个元素(名为 first 与 second)的数据类。Pair 类的签名如下所示:
data class Pair<out A, out B> : Serializable
Pair 类的属性 first 与 second 对应于类型 A 与 B 的通用值。
尽管你可以通过使用两个参数的构造函数来创建 Pair 类,但使用 to 函数更常见。to
函数的定义如下:
public infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
to 函数的实现其实就是实例化 Pair 类。
将所有这些特性放在一起,示例 2-40 展示了如何使用由 to 函数提供的 pair 创建
映射。
示例 2-40:使用 to 函数创建 pair 并作为 mapOf 的参数
@Test
fun `create map using infix to function`() ...