在Kotlin MutableMap和Map之间有什么不同?
我不明白在Kotlin MutableMap和Map之间有什么不同?
以下代码来自https://github.com/antoniolg/Kotlin-for-Android-Developers/blob/master/app/src/main/java/com/antonioleiva/weatherapp/data/db/DbClasses上的示例。 KT
我不知道为什么val map被设计成MutableMap,我认为它应该是Map,因为它是数据库表的字段。
你能告诉我为什么var map被设计成MutableMap吗?
class CityForecast(val map: MutableMap<String, Any?>, val dailyForecast: List<DayForecast>) { var _id: Long by map var city: String by map var country: String by map constructor(id: Long, city: String, country: String, dailyForecast: List<DayForecast>) : this(HashMap(), dailyForecast) { this._id = id this.city = city this.country = country } }
Map
是只读的。 MutableMap
是可变的。 因为var
可以写成一个新的值,所以它必须是一个可变的变量作为委托属性。 如果你只在val
上使用委托属性,你可以使用Map
来代替。