if (countryCodeValue == "de"){
val geocoder = Geocoder(this, Locale.GERMAN)
}else{
val geocoder = Geocoder(this, Locale.ENGLISH)
}
try {
val addresses = geocoder...
geocoder
显示Unresolved reference
但为什么?我真的需要它是这种方式,尤其是在其他一些情况下,否则变通办法会由于某些原因而消耗更多的处理能力
最佳答案
因为您是在语句的每个分支内声明它,这意味着它仅在该分支本地。仅仅因为它们具有相同的名称并不能使它们成为相同的变量。
用这个:
val geocoder = if (countryCodeValue == "de") {
Geocoder(this, Locale.GERMAN)
} else {
Geocoder(this, Locale.ENGLISH)
}
Kotlin的if-else表达式也是语句,这意味着您可以使用它们设置变量。
关于java - Android Kotlin-在else条件下声明val,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52450005/