那么代码“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.idDetailActivity.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