首页 > 解决方案 > Kotlin:无法重新分配 LatLng 的纬度/经度

问题描述

假设我有 2 个LatLng变量。

lateinit var mLatLng1:LatLng
lateinit var mLatLng2:LatLng

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

如果我试试这个:

mLatLng1 = mLatLng2

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

mLatLng1.latitude = mLatLng2.latitude

我收到一个错误:

无法重新分配 Val

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

标签: androidkotlingeolocation

解决方案


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

因为您没有将某些内容分配给mLatLng1. 那将是:

mLatLng1 = LatLng(45.0, 123.0)

相反,您正在这样做:

mLatLng1.latitude = mLatLng2.latitude

这是试图更新 mLatLng1. 而且,如果您的对象是thisLatLng,那么这些字段是final,在 Kotlin 中映射到val.


推荐阅读