ความแตกต่างระหว่างvar
และval
ใน Kotlin คืออะไร?
ฉันได้ไปที่ลิงค์นี้:
https://kotlinlang.org/docs/reference/properties.html
ตามที่ระบุไว้ในลิงค์นี้:
ไวยากรณ์แบบเต็มของการประกาศคุณสมบัติแบบอ่านอย่างเดียวแตกต่างจากวิธีที่ไม่แน่นอนในสองวิธี: มันเริ่มต้นด้วย val แทนที่จะเป็น var และไม่อนุญาตให้ setter
แต่ก่อนมีตัวอย่างที่ใช้ setter
fun copyAddress(address: Address): Address {
val result = Address() // there's no 'new' keyword in Kotlin
result.name = address.name // accessors are called
result.street = address.street
// ...
return result
}
ความแตกต่างที่แน่นอนระหว่างvar
และval
คืออะไร?
ทำไมเราต้องการทั้งสองอย่าง
นี่ไม่ใช่ของตัวแปรใน Kotlin ซึ่งแตกต่างกับ Java var vs val? ในขณะที่ฉันกำลังถามเกี่ยวกับข้อสงสัยที่เกี่ยวข้องกับตัวอย่างเฉพาะในเอกสารและไม่ใช่แค่ทั่วไป
result
ไม่สามารถเปลี่ยนเพื่ออ้างถึงอินสแตนซ์Address
อื่นได้ แต่อินสแตนซ์ที่อ้างถึงยังคงสามารถแก้ไขได้ เช่นเดียวกับใน Java ถ้าคุณมีfinal Address result = new Address();