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

Экспортируемые поля структуры

Экспортируемые поля структуры в Go - это поля, имена которых начинаются с заглавной буквы. Такие поля доступны для чтения и записи из других пакетов, в отличие от неэкспортируемых полей, которые начинаются со строчной буквы и видны только внутри своего пакета. Экспортируемые поля являются важной частью API пакета и позволяют другим пакетам взаимодействовать с данными структуры.

Синтаксис

type StructName struct { ExportedField type unexportedField type }

Пример

Давайте создадим структуру с экспортируемым полем в одном пакете и используем ее в другом:

// package person package person type User struct { Name string // экспортируемое поле Age int // экспортируемое поле }
// package main package main import ( "fmt" "person" ) func main() { user := person.User{ Name: "John", Age: 30, } fmt.Println(user.Name) fmt.Println(user.Age) }

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

"John" "30"

Пример

Попробуем обратиться к неэкспортируемому полю из другого пакета:

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

Пример

Рассмотрим изменение экспортируемого поля через метод:

package main import "fmt" type User struct { Name string Age int } func (u *User) SetAge(age int) { u.Age = age } func main() { user := User{ Name: "Alice", Age: 25, } fmt.Println(user.Age) user.SetAge(26) fmt.Println(user.Age) }

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

"25" "26"

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

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