使用运营商的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

Interesting Posts