W języku Go struktura jest zbiorem zmiennych (pól) zgrupowanych pod jedną nazwą. Jest to złożony typ danych, który pozwala nam tworzyć niestandardowe struktury danych do przechowywania powiązanych informacji. Struktury w Go są jak klasy w programowaniu obiektowym, takim jak C i C++, ale nie obsługują dziedziczenia. Zamiast tego polegają na kompozycji, aby osiągnąć ponowne wykorzystanie kodu. W tym artykule omówiono struktury w Golang oraz sposób, w jaki możemy deklarować i uzyskiwać dostęp do członków struktury.
Co to jest struktura w Golang
W Golang struktura jest złożonym typem danych, który składa się z zera lub większej liczby nazwanych pól, z których każde ma określony typ. Pola struktury mogą być dowolnego typu, w tym innych struktur, tablic, funkcji lub interfejsów.
Oto przykład struktury w Golang:
typ Struktura osoby {
Ciąg Pełna nazwa
YearsOld int
Adres lokalizacji
}
typ Struktura adresu {
ciąg nazwy ulicy
Nazwa miasta ciąg
ciąg nazwy kraju
}
Tutaj zdefiniowaliśmy strukturę Person, która ma trzy pola: FullName, YearsOld i Location. Pole Lokalizacja samo w sobie jest strukturą zawierającą trzy pola: Nazwa ulicy, Nazwa miasta i Nazwa kraju.
Jak zadeklarować strukturę w Golang
Strukturę w Golangu możemy zadeklarować za pomocą metody typ słowo kluczowe. Nazwa struktury jest zdefiniowana po typ słowo kluczowe, a jego pola są ujęte w nawiasy klamrowe {} . Oto składnia deklarowania struktury w Go:
typ StructName struct {
NazwaPola1TypPola1
NazwaPola2TypPola2
...
}
Poniżej znajduje się przykład, jak zadeklarować strukturę o nazwie Person z dwoma polami name i age typów odpowiednio string i int:
ciąg imienia
wiek wew
}
W powyższym kodzie użyliśmy metody typ słowo kluczowe, aby zadeklarować nową strukturę o nazwie Osoba z dwoma polami nazwa typu string i wiek typu int. Pola są oddzielone a Nowa linia charakter, ale A średnik (;) może być również używany do ich rozdzielania.
Jak uzyskać dostęp do członka struktury w Golang
Aby uzyskać dostęp do pól instancji struktury w języku Go kropka („.”) używany jest operator Po tym operatorze kropkowym następuje nazwa pola. Oto przykład, jak uzyskać dostęp do pól nazwy i wieku instancji struktury Person:
// Stwórz nowy ` Osoba ` instancja struktury o nazwie „kasa” i wiek 24kasa := Osoba { nazwa: „kasa” , wiek: 24 }
// Uzyskaj dostęp do pól ` gotówka ` instancja struktury
fmt.Println ( kasa.nazwa ) // Wyjście: „kasa”
fmt.Println ( kasa.wiek ) // Wyjście: 24
W powyższym kodzie stworzyliśmy nową instancję struktury Person o nazwie kash o nazwie gotówka i wiek 24 . Następnie uzyskujemy dostęp do pól nazwy i wieku instancji struktury kash za pomocą metody („.”) operatora i wydrukować je na konsoli.
Należy zauważyć, że dostęp do pól instancji struktury uzyskuje się za pomocą notacji kropkowej, a nie strzałka notacja (->) używany w niektórych innych językach programowania. Notacja kropkowa jest konsekwentnie używana w Go do uzyskiwania dostępu do pól struktur, a także właściwości i metod innych typów.
Przykładowy kod deklarowania i uzyskiwania dostępu do członka Struct w Golang
Poniżej znajduje się kompletny przykład deklarowania struktury Person w Go i wyświetlania jej wartości na ekranie:
Pakiet głównyimport 'fmt'
typ Struktura osoby {
ciąg imienia
wiek wew
}
funkcja główna ( ) {
// Stwórz nowy ` Osoba ` instancja struktury o nazwie „kasa” i wiek 24
kasa := Osoba { nazwa: „kasa” , wiek: 24 }
// Wydrukuj ` nazwa ` I ` wiek ` z ` gotówka ` struct instancję do konsoli
fmt.Printf ( 'Nazwy \N ' , kasa.nazwa )
fmt.Printf ( „Wiek: %d \N ' , kasa.wiek )
}
W powyższym kodzie najpierw zadeklarowaliśmy plik Osoba struktura. Ta struktura zawiera dwa pola, które są nazwą i wiekiem. Następnie utworzyliśmy nową instancję struktury Person o nazwie kash z nazwą gotówka i wiek 24 .
Aby wyświetlić pola imienia i wieku, używamy rozszerzenia fmt.Printf funkcja z %S I %D specyfikatory formatu, aby wydrukować odpowiednio pola nazwy i wieku.
Po uruchomieniu na konsoli pojawi się następujący kod wyjściowy:
Jak przekazać strukturę jako argumenty funkcji
Aby przekazać strukturę jako argument funkcji w Go, musimy po prostu określić typ struktury jako typ parametru w sygnaturze funkcji, a następnie przekazać instancję struktury jako argument podczas wywoływania funkcji.
Przykładowy kod
Poniższy przykład pokazuje, jak przekazać instancję struktury Person jako argument do funkcji w języku Go i wyświetlić jej wartości na ekranie:
Pakiet głównyimport 'fmt'
// Zadeklaruj strukturę o nazwie ` Osoba ` z dwoma polami: ` nazwa ` I ` wiek `
typ Struktura osoby {
ciąg imienia
wiek wew
}
// zadeklarować funkcjonować o imieniu ` drukujOsoba ` to zajmuje ` Osoba ` struktura Jak argument
func printOsoba ( p Osoba ) {
fmt.Printf ( 'Nazwy \N ' , p.nazwa )
fmt.Printf ( „Wiek: %d \N ' , strona )
}
funkcja główna ( ) {
// Stwórz nowy ` Osoba ` instancja struktury o nazwie „kasa” i wiek 24
kasa := Osoba { nazwa: „kasa” , wiek: 24 }
// Przekaż ` gotówka ` instancja struktury do ` drukujOsoba ` funkcjonować
drukujOsoba ( gotówka )
}
W powyższym kodzie najpierw zadeklarowaliśmy strukturę Person z dwoma polami, nazwa, I wiek . Następnie deklarujemy funkcję o nazwie drukujOsoba który przyjmuje strukturę Person jako argument i wyświetla na ekranie jej pola nazwy i wieku za pomocą funkcji fmt.Printf.
W funkcji main stworzyliśmy nową instancję struktury Person o nazwie kash o nazwie gotówka i wiek 24. Następnie przekazujemy instancję struktury kash do funkcji printPerson, wywołując funkcję printPerson i przekazując gotówka jako argument.
Po uruchomieniu powyższego kodu na konsoli można zobaczyć następujące dane wyjściowe:
Wniosek
W Golang struktury mogą reprezentować złożone typy danych i hermetyzować powiązane dane. Struktura to typ danych składający się z jednego lub większej liczby pól, z których każde ma określoną nazwę i typ. Pola struktury mogą być dowolnego typu, w tym innych struktur, tablic, funkcji lub interfejsów. W tym artykule szczegółowo omówiono struktury Go, aby uzyskać więcej informacji na temat deklarowania i uzyskiwania dostępu do elementów struktury, przeczytaj ten artykuł.