假设我有2个LatLng变量。

lateinit var mLatLng1:LatLng
lateinit var mLatLng2:LatLng


假设它们都已经被初始化为某些值。

如果我尝试这样做:

mLatLng1 = mLatLng2


它按预期工作。但是,当我尝试这样做:

mLatLng1.latitude = mLatLng2.latitude


我收到一个错误:


  Val无法重新分配


如果我的mLatLng1变量的类型为var,那么为什么会出现此错误?

最佳答案

如果我的mLatLng1变量的类型为var,那么为什么会出现此错误?


因为您没有为mLatLng1分配任何内容。那将是:

mLatLng1 = LatLng(45.0, 123.0)


相反,您正在这样做:

mLatLng1.latitude = mLatLng2.latitude


这试图更新mLatLng1中的字段。并且,如果您的对象是this LatLng,则这些字段是final,在Kotlin中将其映射到val

10-07 19:12