文档上说:
fun bundleOf(vararg pairs: Pair<String, Any?>): Bundle
返回一个包含给定键值对作为元素的新Bundle。
我尝试过:
val bundle = bundleOf {
Pair("KEY_PRICE", 50.0)
Pair("KEY_IS_FROZEN", false)
}
但是它显示错误。
文档上说:
fun bundleOf(vararg pairs: Pair<String, Any?>): Bundle
返回一个包含给定键值对作为元素的新Bundle。
我尝试过:
val bundle = bundleOf {
Pair("KEY_PRICE", 50.0)
Pair("KEY_IS_FROZEN", false)
}
但是它显示错误。
vararg
,则必须将参数作为参数而不是 lambda 表达式提供。 请尝试以下内容:
如果它需要一个 vararg
,你需要将你的参数作为参数提供,而不是作为 lambda表达式。尝试这个:
val bundle = bundleOf(
Pair("KEY_PRICE", 50.0),
Pair("KEY_IS_FROZEN", false)
)
基本上,将您拥有的 {
和 }
括号更改为 (
和 )
并在它们之间添加一个逗号。
另一种方法是使用 Kotlin 的 to
函数,它将左侧和右侧组合成一个 Pair
。这使得代码更加简洁:
val bundle = bundleOf(
"KEY_PRICE" to 50.0,
"KEY_IS_FROZEN" to false
)
这个怎么样?
val bundle = bundleOf (
"KEY_PRICE" to 50.0,
"KEY_IS_FROZEN" to false
)
to
是创建 Pair
对象的绝佳方式。具有优美易读性的中缀函数之美。
apply plugin: 'kotlin-android-extensions'
,但 bundleOf()
无法自行解析。是否还有其他设置需要完成? - Etienne Lawlor只是为了完成其他答案:
首先,要使用bundleOf
,需要将implementation 'androidx.core:core-ktx:1.0.0'
添加到build.gradle
中,然后:
var bundle = bundleOf("KEY_PRICE" to 50.0, "KEY_IS_FROZEN" to false)