2017-11-03 11 views
0

私は理解できませんKotlinのMutableMapとMapの間には何がありますか?KotlinのMutableMapとMapの違いは何ですか?

次のコードは、valのマップがMutableMapとして設計されている理由私にはわからないhttps://github.com/antoniolg/Kotlin-for-Android-Developers/blob/master/app/src/main/java/com/antonioleiva/weatherapp/data/db/DbClasses.kt

上のサンプルからですが、私はそれがデータベーステーブルのフィールドだから、それは地図すべきだと思います。

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 
    } 
} 
+0

[Kotlinで代理人を使用すると、MutableMap はvarにどのように渡されますか?](https://stackoverflow.com/questions/47065714/how-does-mutablemapstring-any-pass)値を使用する - i-use-kotliを使用する場合) – Joshua

答えて

0

Mapは読み取り専用です。 MutableMapは変更可能です。 varは新しい値を書き込むことができるため、代理プロパティとして可変変数でなければなりません。 valでデリゲートプロパティのみを使用する場合は、代わりにMapを使用できます。

+0

マップを定義するときにまずマップに値を割り当てる必要がありますか?私は、構築関数を使ってマップに値を割り当てることはできません。 – HelloCW

+0

@HelloCW [別の質問に関する私の回答](https://stackoverflow.com/questions/47065714/how-does-mutablemapstring-any-pass-value-to-var-when-i-use-delegate-in- kotli/47066460#47066460) – Joshua

関連する問題