Sobes.tech
Back to questions
Junior — Middle
82

Каким образом реализуются и применяются неизменяемые объекты в языке Dart?

Answer from AI

sobes.tech AI

В Dart неизменяемые объекты (immutable) создаются с помощью ключевого слова final или const.

  • final означает, что переменная может быть присвоена только один раз, но объект, на который она ссылается, может быть изменяемым.
  • const создаёт константный объект, который компилируется во время компиляции и не может быть изменён.

Для создания полностью неизменяемых классов обычно объявляют все поля как final и не предоставляют сеттеры. Это гарантирует, что после создания объект не изменится.

Пример:

class Point {
  final int x;
  final int y;

  const Point(this.x, this.y);
}

void main() {
  const p = Point(1, 2);
  // p.x = 3; // Ошибка: нельзя изменить final поле
}

Такой подход полезен для повышения безопасности кода, упрощения отладки и работы с потоками, так как неизменяемые объекты не требуют синхронизации.