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

Доступ к полям структуры

Доступ к полям структуры в Go осуществляется с помощью оператора точки .. Мы можем как получать значение поля, так и изменять его. Если структура определена в другом пакете, то доступны только экспортируемые поля (с именами, начинающимися с заглавной буквы).

Синтаксис

instance.FieldName

Пример

Давайте определим структуру Person и обратимся к ее полям:

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

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

"Alice" 30

Пример

Давайте изменим значение поля структуры:

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

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

26

Пример

Если структура является указателем, доступ к полям также осуществляется через точку (Go автоматически разыменовывает указатель):

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

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

"Charlie" 23

Пример

Попытка доступа к неэкспортируемому полю из другого пакета приведет к ошибке компиляции. В этом примере поле age неэкспортируемое:

package main import "fmt" type User struct { Name string age int // неэкспортируемое поле } func main() { u := User{Name: "Dave", age: 40} fmt.Println(u.Name) // fmt.Println(u.age) // ошибка: нельзя обратиться к неэкспортируемому полю }

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

"Dave"

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

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить