Зарегистрируйтесь, чтобы продолжить обучение

Пользовательские типы Основы Go

В Go можно объявить как собственный тип, так и создать алиас на существующий. Для этого используется ключевое слово type.

*type NumCount int - объявляется новый, пользовательский, тип данных NumCount *type NumCount = int - создается алиас, псевдоним на существующий тип

type NumCount int

func main() {
    nc := NumCount(len([]int{1, 2, 3}))

    fmt.Println(nc) // 3
}

Пользовательский тип данных можно конвертировать в оригинальный тип и обратно:

type errorCode string

func main() {
    ec := errorCode("internal")

    fmt.Println(ec) // internal

    fmt.Println(string(ec)) // internal
}

Также у пользовательских типов могут быть методы. Объявление метода происходит так же, как и со структурами:

type counter int


// передается указатель, чтобы можно было изменить состояние счетчика "c"
func (c *counter) inc() {
    *c++
}

func main() {
    c := counter(0)
    (&c).inc() // передается указатель на счетчик &c, так как функция "inc()" работает с указателями
    (&c).inc()

    fmt.Println(c) // 2
}

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff