使用运营商的Kotlin地图
开始与Kotlin一起玩周末,并尝试让地图与运营商合作。 不知何故Kotlin告诉我,我把它弄糊涂了。
这是代码的作品(语法不像我想要的):
var columns = sortedMapOf("a" to 1, "b" to 2) columns.plusAssign("c" to 3)
这里是代码,根本不编译(但在语法上更接近我想要的)
var cs = sortedMapOf(1 to "a", 2 to "b") cs += Pair(3, "c")
什么简短的运算符魔术/铸造我失踪?
提前致谢。
这里的含糊之处是因为Kotlin可以将表达式cs += Pair(3, "c")
为从原始映射和给定对创建新映射并将该映射分配回变量cs = cs.plus(Pair(3, "c"))
或者作为变更原图的操作cs.plusAssign(Pair(3, "c"))
为了消除这种情况,请遵循Kotlin的座右铭 – make val
,而不是var
!
当你将cs
声明为val(非可变变量)时,一旦它被初始化,它就不能被重新分配,所以唯一的操作就是plusAssign
。