Общее правило при использовании Kotlin
.
Разница в значениях val и var
Возможно, вы уже знаете различия, но для ответа я повторю это.var
позволяет изменять ссылку на объект, в то время как val
не позволяет изменять ссылку на объект.
Объект может быть объявлен безопасно с использованием либо var
, либоКлючевое слово val
, но причина, по которой вы хотите использовать val
для объекта (в большинстве случаев), заключается в том, что вы не хотите ссылаться на этого члена класса с новой ссылкой на новый экземпляр объекта.Таким образом, вы всегда сохраняете ссылку на исходный объект и можете изменять свойства объекта.
В случае с var, хотя в этом нет ничего плохого, вы все равно можете использовать его «без проблем».Вы по-прежнему можете обращаться к свойствам объекта и изменять их, а также можете ссылаться на этот элемент класса для ссылки на новый объект.
Пример:
val myObject = MyObject()
myObject.something = 1 //can still modify object property.
myOjbect = MyObject() //re-referencing the object, NOT POSSIBLE
var myNewObject = MyNewObject()
myNewObject.someThing = "Hello world!" //can still modify object properties
myNewObject = MyNewObject() //can still reference it.
Зачем использовать val над var в случае «неизменяемых» объектов?
Это дает вам возможность не«случайно» разместив новую ссылку.
Но есть ли какой-то выигрыш в производительности при использовании val
?
Ответ : Последнее ключевое слововыгоды