АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
1281 of 1310 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Поле field

Ключевое слово field используется внутри сеттера пользовательского свойства для обращения к его исходному (резервному) значению. Оно позволяет получить доступ к данным свойства до изменения или после него. field доступно только в пределах геттера или сеттера свойства.

Синтаксис

var propertyName: Type = initialValue get() = field set(value) { field = value }
val propertyName: Type get() = field

Пример

Создадим свойство с пользовательским сеттером, который использует field для доступа к исходному значению:

var count: Int = 0 set(value) { println("Old value: $field") field = value println("New value: $field") } count = 5

Результат выполнения кода:

Old value: 0 New value: 5

Пример

Использование field для добавления валидации при установке значения:

var age: Int = 0 set(value) { if (value >= 0) { field = value } else { println("Age cannot be negative") } } age = 25 println(age) age = -5 println(age)

Результат выполнения кода:

25 Age cannot be negative 25

Пример

Использование field в вычисляемом свойстве:

var name: String = "" get() = field.uppercase() set(value) { field = value.trim() } name = " john " println(name)

Результат выполнения кода:

String "JOHN"

Пример

Использование field для свойства только для чтения:

val computedValue: Int get() = field * 2 // Это вызовет ошибку компиляции // computedValue = 10

Результат выполнения кода:

Compilation error: Backing field is not accessible

Смотрите также

  • ключевое слово val,
    которое объявляет свойства только для чтения
  • ключевое слово var,
    которое объявляет изменяемые свойства
  • ключевое слово get,
    которое определяет геттер для свойства
  • ключевое слово set,
    которое определяет сеттер для свойства