Go за Прикладом: Структури (Structs)

Work in Progress / Сайт в процесі розробки

Структури в Go це типізовані колекції полів, корисні для групування даних разом задля формування записів.

package main
import "fmt"

Ця структура person має поля для імені (name) та віку (age).

type person struct {
    name string
    age  int
}
func main() {

Наступний синтаксис створить нову структуру.

    fmt.Println(person{"Bob", 20})

Дозволяється іменувати поля при ініціалізації структури.

    fmt.Println(person{name: "Alice", age: 30})

Пропущені поля будуть створені відповідно нульового значення типу пропущеного поля.

    fmt.Println(person{name: "Fred"})

Префікс & поверне вказівник на структуру.

    fmt.Println(&person{name: "Ann", age: 40})

Доступ до полів надається через синстксис крапки .

    s := person{name: "Sean", age: 50}
    fmt.Println(s.name)

Дозволяється використовувати крапки з вказівниками структур, вказівники, в такому разі, автоматично розіменовані.

    sp := &s
    fmt.Println(sp.age)

Дані у структурі можна змінювати ( тобто вони mutable, такі що дозволяється змінбвати).

    sp.age = 51
    fmt.Println(sp.age)
}
$ go run structs.go
{Bob 20}
{Alice 30}
{Fred 0}
&{Ann 40}
Sean
50
51

Наступний приклад: Методи (Methods).