Как создать тип struct в Go или Golang?

Первоначально было опубликовано здесь!

Чтобы создать тип struct в Go или Golang, вы можете использовать ключевое слово type, за которым следует имя struct, затем ключевое слово struct и, наконец, символ {} (открывающие и закрывающие фигурные скобки). Внутри скобок нужно добавить поля, а затем тип, который они должны содержать.

TL;DR

package main

import "fmt"

// Admin struct
type Admin struct {
    name string
    id   int
}

func main() {
    // create a new `Admin`
    // using the `Admin` struct
    // and assign it to the `john` variable
    john := Admin{
        name: "John Doe",
        id:   1,
    }

    // log the contents of the `john` variable to console
    fmt.Printf("%+v", john) // {name:John Doe id:1}
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Типы struct используются для организации реляционных частей данных в единое целое. Если вы пришли из экосистемы JavaScript, то структуры — это то же самое, что и объекты.

Допустим, нам нужно создать тип struct под названием Admin с полями name и id, имеющими типы string и int.

Для этого нужно сначала использовать ключевое слово type, за которым следует имя структуры Admin, затем ключевое слово struct, заканчивающееся символом {} (открывающая и закрывающая скобки), как показано ниже,

package main

// Admin struct
type Admin struct {
    name string
    id   int
}

func main() {
    // cool code here
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Хотя вы можете объявлять типы struct внутри функции main(), я рекомендую объявлять их вне функции, так как это будет чище.

Теперь давайте создадим нового Admin из типа Admin struct и добавим некоторые значения в его поля.

Для этого мы можем просто написать тип Admin, за которым следует символ {} (открывающие и закрывающие фигурные скобки). Внутри скобок мы можем написать поля и соответствующее им значение, разделенные символом : (точка с запятой).

Это можно сделать следующим образом,

package main

// Admin struct
type Admin struct {
    name string
    id   int
}

func main() {
    // create a new `Admin`
    // using the `Admin` struct
    Admin{
        name: "John Doe",
        id:   1,
    }
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Давайте также присвоим только что созданную переменную Admin переменной john и затем запишем ее содержимое в консоль следующим образом,

package main

import "fmt"

// Admin struct
type Admin struct {
    name string
    id   int
}

func main() {
    // create a new `Admin`
    // using the `Admin` struct
    // and assign it to the `john` variable
    john := Admin{
        name: "John Doe",
        id:   1,
    }

    // log the contents of the `john` variable to console
    fmt.Printf("%+v", john) // {name:John Doe id:1}
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Как вы видите, в консоли отображаются значения John Doe и 1, что доказывает, что новый Admin создан.

Посмотрите приведенный выше код в реальном времени в The Go Playground.

На этом все 😃!

Не стесняйтесь поделиться, если вы нашли это полезным 😃.


Оцените статью
devanswers.ru
Добавить комментарий