那么代码“DetailActivity.ID to it.id”是什么意思?
我是Kotlin的初学者。 以下代码来自Kotlin-for-Android开发人员
https://github.com/antoniolg/Kotlin-for-Android-Developers/blob/master-june-2017/app/src/main/java/com/antonioleiva/weatherapp/ui/activities/MainActivity.kt
有趣的startActivity有两个参数DetailActivity.ID to it.id
和DetailActivity.CITY_NAME to result.city
。
你能解释关于这两个参数的细节吗?
private fun loadForecast() = doAsync { val result = RequestForecastCommand(zipCode).execute() uiThread { val adapter = ForecastListAdapter(result) { startActivity<DetailActivity>(DetailActivity.ID to it.id, DetailActivity.CITY_NAME to result.city) } forecastList.adapter = adapter toolbarTitle = "${result.city} (${result.country})" } }
to
是标准库中的一个中缀函数,用于轻松创建Pair
实例。
DetailActivity.ID to it.id
相当于Pair(DetailActivity.ID, it.id)
。
你可以通过在Android Studio中使用Ctrl + B
来实际上跳转到它的实现,这很简单:
public infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
to
是一个中缀函数 ,用于从实例创建一对:
infix fun <A, B> A.to(that: B): Pair<A, B>
而不是写val pair = Pair(a, b)
,现在可以写val pair = a to b
。