Kotlin:无法重新分配LatLng的纬度/经度

时间:2019-05-15 23:36:56

标签: android kotlin geolocation

假设我有2个//Only relevant code below HttpContext.Current.Server.Execute(path, writer); //path is filepath of aspx file string msg = writer.ToString(); //filename is the html file using (StreamWriter sw = new StreamWriter(filename,true)){ sw.write(msg); sw.Dispose(); } mail.Attachments.Add(new Attachment(filename)); 变量。

LatLng

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

如果我尝试这样做:

lateinit var mLatLng1:LatLng
lateinit var mLatLng2:LatLng

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

mLatLng1 = mLatLng2

我得到一个错误:

  

无法重新分配Val

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

1 个答案:

答案 0 :(得分:3)

  

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

因为您没有为mLatLng1分配内容。那应该是:

mLatLng1 = LatLng(45.0, 123.0)

相反,您正在执行此操作:

mLatLng1.latitude = mLatLng2.latitude

这正试图更新内部 mLatLng1中的字段。而且,如果您的对象是this LatLng,则这些字段是final,在Kotlin中它们映射到val