Что такое структуры в Голанге

Cto Takoe Struktury V Golange



В языке Go структура представляет собой набор переменных (полей), сгруппированных под одним именем. Это составной тип данных, который позволяет нам создавать пользовательские структуры данных для хранения связанной информации. Структуры в Go похожи на классы в объектно-ориентированном программировании, таком как C и C++, но они не поддерживают наследование. Вместо этого они полагаются на композицию для повторного использования кода. В этой статье рассказывается о структурах в Golang и о том, как мы можем объявить и получить доступ к членам структуры.

Что такое структура в Голанге

В Golang структура — это составной тип данных, состоящий из нуля или более именованных полей, каждое из которых имеет определенный тип. Поля структуры могут быть любого типа, включая другие структуры, массивы, функции или интерфейсы.







Вот пример структуры в Golang:



тип Структура человека {
Полная строка имени
YearsOld int
Адрес местонахождения
}
тип Адресная структура {
StreetName строка
CityName    строка
Строка CountryName
}


Здесь мы определили структуру Person с тремя полями: FullName, YearsOld и Location. Поле Location само по себе представляет собой структуру, состоящую из трех полей: StreetName, CityName и CountryName.



Как объявить структуру в Golang

Мы можем объявить структуру в Golang, используя тип ключевое слово. Имя структуры определяется после тип ключевое слово, а его поля заключены в фигурные скобки { } . Вот синтаксис объявления структуры в Go:





тип Структура имя структуры {
ИмяПоля1 ТипПоля1
ИмяПоля2 ТипПоля2
...
}


Ниже приведен пример объявления структуры с именем Person с двумя полями name и age типов string и int соответственно:

тип Структура человека {
строка имени
возраст
}


В приведенном выше коде мы использовали тип ключевое слово для объявления новой структуры с именем Человек с двумя полями имя строки типа и возраст типа внутр. Поля разделены Новая линия характер, но точка с запятой (;) также может использоваться для их разделения.



Как получить доступ к члену структуры в Golang

Чтобы получить доступ к полям экземпляра структуры на языке Go точка ('.') используется оператор. За этим оператором точки следует имя поля. Вот пример того, как получить доступ к полям имени и возраста экземпляра структуры Person:

// Создать новый ` Человек ` экземпляр структуры с именем 'кэш' и возраст 24
кеш := человек { имя: 'кэш' , возраст: 24 }

// Доступ к полям ` деньги ` экземпляр структуры
fmt.Println ( кэш.имя ) // Выход: 'кэш'
fmt.Println ( Кэш.Возраст ) // Выход: 24


В приведенном выше коде мы создали новый экземпляр структуры Person с именем kash и именем деньги и возраст 24 . Затем мы получаем доступ к полям имени и возраста экземпляра структуры kash, используя («.») оператора и вывести их на консоль.

Важно отметить, что доступ к полям экземпляра структуры осуществляется с использованием точечной нотации, а не стрелка обозначение (->) используется в некоторых других языках программирования. Точечная нотация последовательно используется в Go для доступа к полям структур, а также к свойствам и методам других типов.

Пример кода объявления и доступа к члену структуры в Golang

Ниже приведен полный пример объявления структуры Person в Go и вывода ее значений на экран:

основной пакет
Импортировать 'ФМТ'
тип Структура человека {
строка имени
возраст
}
основная функция ( ) {
// Создать новый ` Человек ` экземпляр структуры с именем 'кэш' и возраст 24
кеш := человек { имя: 'кэш' , возраст: 24 }
// Распечатать ` имя ` и ` возраст ` из ` деньги ` экземпляр структуры на консоль
fmt.Printf ( 'Имя: %s \n ' , кэш.имя )
fmt.Printf ( 'Возраст: %d \n ' , каш.возраст )
}


В приведенном выше коде мы сначала объявили Человек структура. Эта структура содержит два поля: имя и возраст. После этого мы создали новый экземпляр структуры Person с именем kash и именем деньги и возраст 24 .

Чтобы отобразить поля имени и возраста, мы используем fmt.Printf функция с %s и %d спецификаторы формата для печати полей имени и возраста соответственно.

После запуска в консоли появляется следующий код:

Как передать структуру в качестве аргументов функции

Чтобы передать структуру в качестве аргумента функции в Go, нам просто нужно указать тип структуры в качестве типа параметра в сигнатуре функции, а затем передать экземпляр структуры в качестве аргумента при вызове функции.

Пример кода

В приведенном ниже примере показано, как передать экземпляр структуры Person в качестве аргумента функции на языке Go и вывести его значения на экран:

основной пакет
Импортировать 'ФМТ'
// Объявите структуру с именем ` Человек ` с двумя полями: ` имя ` и ` возраст `
тип Структура человека {
строка имени
возраст
}
// объявить функция названный ` printPerson ` это занимает ` Человек ` структура как Аргумент
функция printPerson ( р человек ) {
fmt.Printf ( 'Имя: %s \n ' , ф.имя )
fmt.Printf ( 'Возраст: %d \n ' , страница )
}
основная функция ( ) {
// Создать новый ` Человек ` экземпляр структуры с именем 'кэш' и возраст 24
кеш := человек { имя: 'кэш' , возраст: 24 }
// Пройти ` деньги ` экземпляр структуры в ` printPerson ` функция
printPerson ( деньги )
}


В приведенном выше коде мы сначала объявили структуру Person с двумя полями: имя, и возраст . Затем мы объявляем функцию с именем printPerson которая принимает структуру Person в качестве аргумента и выводит на экран поля имени и возраста с помощью функции fmt.Printf.

В основной функции мы создали новый экземпляр структуры Person с именем kash и именем деньги и возраст 24 года. Затем мы передаем экземпляр структуры kash функции printPerson, вызывая функцию printPerson и передавая деньги как аргумент.

Следующий вывод можно увидеть на консоли после запуска вышеуказанного кода:

Заключение

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