Сеттер set
Сеттер set - это специальный метод класса,
который вызывается при попытке присвоить значение
свойству. Он принимает один обязательный параметр -
новое значение, которое нужно установить. Внутри
сеттера можно выполнять проверки, преобразования
или любую другую логику перед сохранением значения.
Имя сеттера принято записывать в стиле
camelCase, а его объявление начинается
с ключевого слова set. Сеттер не возвращает
значение, поэтому у него нет типа возвращаемого
результата.
Синтаксис
set name(value)
{
// тело сеттера
}
Пример
Давайте создадим класс User с приватным полем
_name и сеттером, который устанавливает это
поле:
class User
{
String _name = '';
set name(String value)
{
_name = value;
}
String get name => _name;
}
void main()
{
User user = User();
user.name = 'abcde';
print(user.name);
}
Результат выполнения кода:
"abcde"
Пример
Давайте добавим в сеттер проверку: если переданное значение пустое, поле не будет изменено:
class User
{
String _name = 'default';
set name(String value)
{
if (value.isNotEmpty)
{
_name = value;
}
}
String get name => _name;
}
void main()
{
User user = User();
user.name = '';
print(user.name);
}
Результат выполнения кода:
"default"
Пример
Давайте сделаем сеттер, который преобразует полученную строку в верхний регистр перед сохранением:
class User
{
String _name = '';
set name(String value)
{
_name = value.toUpperCase();
}
String get name => _name;
}
void main()
{
User user = User();
user.name = 'abcde';
print(user.name);
}
Результат выполнения кода:
"ABCDE"