Czym są struktury w Golang

Czym Sa Struktury W Golang



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:

typ Struktura osoby {
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 24
kasa := 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łówny
import '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łówny
import '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ł.