> Как называются типы объектов, которые при модификации возвращают копию, а не изменяют исходный объект (Go)

Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: Лига Цифровой Экономики

Стек: Go

> Пример ответа

В Go такие типы объектов называются иммутабельными (immutable). В стандартной библиотеке Go нет встроенных иммутабельных типов, но их можно реализовать самостоятельно. Например, строки (string) в Go ведут себя иммутабельно: любая операция, изменяющая строку, возвращает новую строку, а исходная остаётся неизменной. Для пользовательских типов иммутабельность достигается за счёт того, что все методы-мутаторы возвращают новый экземпляр, а не изменяют текущий. Пример:

GO
type Point struct {
x, y int
}
func (p Point) WithX(newX int) Point {
return Point{x: newX, y: p.y}
}

Здесь метод WithX возвращает новый объект Point, не затрагивая исходный.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью