> Приведите пример инкапсуляции (Go)
Уровень: senior · Роль: backend · Категория: Технические вопросы
Компании: Aston
Стек: Go
> Пример ответа
В Go инкапсуляция реализуется на уровне пакета: идентификаторы, начинающиеся с маленькой буквы, являются приватными, с большой - экспортируемыми. Пример:
GOpackage accounttype Account struct {owner string // приватное полеbalance float64 // приватное поле}// Конструктор - экспортируемая функцияfunc NewAccount(owner string) *Account {return &Account{owner: owner, balance: 0}}// Экспортируемый метод для безопасного доступа к балансуfunc (a *Account) Balance() float64 {return a.balance}// Экспортируемый метод для изменения баланса с проверкойfunc (a *Account) Deposit(amount float64) {if amount > 0 {a.balance += amount}}
Здесь поля owner и balance скрыты от внешнего кода, а доступ к ним возможен только через методы Balance() и Deposit(). Это защищает данные от некорректного изменения и скрывает внутреннюю реализацию.
> Похожие задачи по backend
Как реализовать миграции базы данных
Уровень: seniorКатегория: Технические вопросы
Компания: Лукойл
Стек: Go
Что такое WebSocket и как он работает
Уровень: juniorКатегория: Технические вопросы
Компания: Aston
Стек: Go
Использовали ли Kotlin для написания автотестов
Уровень: middleЯзык: JavaКатегория: Технические вопросы
Компания: LeanSoftwareProduction
Стек: Java, Kotlin
Есть ли в Kotlin аналог equals и hashCode и как это реализовано
Уровень: seniorЯзык: JavaКатегория: Технические вопросы
Стек: Kotlin, Java
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью