РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
453 of 1593 menu

Литерал структуры

Литерал структуры в Go используется для создания нового экземпляра структуры с указанием значений ее полей. Существует два способа создания литерала: с указанием имен полей и без них. При создании литерала без имен полей значения должны передаваться в том же порядке, в котором поля объявлены в структуре. Второй способ является более предпочтительным, так как он делает код более читаемым и менее подверженным ошибкам при изменении структуры.

Синтаксис

// С указанием имен полей StructName{ Field1: value1, Field2: value2, } // Без указания имен полей StructName{value1, value2}

Пример

Давайте создадим структуру Person и инициализируем ее с помощью литерала с указанием имен полей:

package main import "fmt" type Person struct { Name string Age int } func main() { p := Person{ Name: "Alice", Age: 30, } fmt.Println(p) }

Результат выполнения кода:

{Alice 30}

Пример

Теперь создадим экземпляр структуры Person без указания имен полей:

package main import "fmt" type Person struct { Name string Age int } func main() { p := Person{"Bob", 25} fmt.Println(p) }

Результат выполнения кода:

{Bob 25}

Пример

При создании литерала можно указать не все поля. Неуказанные поля получат нулевые значения по умолчанию:

package main import "fmt" type Person struct { Name string Age int } func main() { p := Person{Name: "Charlie"} fmt.Println(p) }

Результат выполнения кода:

{Charlie 0}

Пример

Литералы структур можно использовать для создания вложенных структур. Создадим структуру Employee, которая содержит структуру Person:

package main import "fmt" type Person struct { Name string Age int } type Employee struct { Person Position string } func main() { e := Employee{ Person: Person{ Name: "David", Age: 28, }, Position: "Developer", } fmt.Println(e) }

Результат выполнения кода:

{{David 28} Developer}

Смотрите также

  • объявление структуры struct,
    которое определяет новый тип данных
  • поля структуры fields,
    которые хранят данные экземпляра
  • доступ к полям field access,
    который позволяет получать и изменять значения полей
  • указатели на структуры pointer,
    которые позволяют эффективно работать с большими структурами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить