Golang struct

Golang struct
W skrócie, struktura lub struktura to zbiór pól z zdefiniowanymi typami danych. Struktury są bardzo przydatne i poprawiają elastyczność w programach. Struktury są prawdopodobnie najlepszym wyborem, jeśli masz dane, które najlepiej reprezentowane jako jednostka. Pomyśl o tym jak o lekkiej wersji programowania obiektowego.

GO pozwala tworzyć i używać struktur przy użyciu typów wbudowanych lub zdefiniowanych przez użytkownika.

Ten przewodnik odbierze się i zbada, jak działają struktury w języku programowania Go.

Deklarowanie struktury

Poniższa składnia pokazuje, jak utworzyć strukturę w Go:

Typestruct_amestruct
Field_1 data_type
Field_2 data_type

field_ndata_type

Zaczynamy od wywołania słowa kluczowego typu. Następnie pojawia się nazwa struktury. Nazwa struktury może być zdefiniowana przez użytkownika (o ile przestrzega zasad nazewnictwa w Go). Następnie używamy słowa kluczowego struktury, a następnie parę kręconych aparatów ortodontycznych.

Wewnątrz aparatów ortodontycznych definiujemy różne pola, które tworzą strukturę. Po nazwie pola następuje jego typ danych.

Deklaruj strukturę - przykład

Poniższy przykładowy kod określa strukturę o nazwie Pracownik. Zawiera 5 pól z różnymi typami danych.

TypeEmployee struct
Nazwa ciąg
Wiek int
Emerytowany bool
String działu
Wynagrodzenie Float64

Powyższe tworzy strukturę pracownika zawierającą pola różnych typów.

Uwaga: jeśli chcesz wyeksportować strukturę i jej pola do innych pakietów, upewnij się, że nazwy zaczynają się od wielkich liter. W przeciwnym razie zakres jest ograniczony do tego pakietu.

Instancja struktury

Definiowanie struktury oznacza, że ​​tworzymy tylko plan. Aby utworzyć obiekt ze struktury, musimy utworzyć jego instancję.

Aby utworzyć instancję klasy w Go, zacznij od słowa kluczowego var, a następnie nazwy instancji.

Poniższy przykład tworzy instancję struktury pracownika.

VAR EMP pracownik

Po utworzeniu instancji struktury możemy uzyskać dostęp do pól za pomocą notacji kropkowej, jak pokazano:

VAR EMP pracownik
emp.Name = "Thomas J"
emp.Wiek = 35
emp.Emerytowany = false
emp.Dział = „DevOps Engineer”
emp.Wynagrodzenie = 130000.50

Po ustawieniu pola Instace możemy wydrukować je jako:

fmt.Println (emp)

Powyższy fragment powraca:

$ Go Run Strecs.Iść
Thomas J 35 False DevOps Engineer 130000.5

Strukturowanie - dosłowne

Możesz także stworzyć instancję struktury przy użyciu metody dosłownej struktury. Poniższy przykład pokazuje strukturę literalną do utworzenia instancji struktury.

var emp1 = pracownik „Mary A”, 26, False, „Game Developer”, 150000.10
fmt.Println (emp1)

Powyższy przykład tworzy instancję klasy i ustawia pola bez użycia notacji kropki.

Strukturowanie instancji - nowe słowo kluczowe

Jeśli nie chcesz ustawić wartości podczas tworzenia instancji, możesz użyć nowego słowa kluczowego. Na przykład:

var emp2 = nowy (pracownik)

Po utworzeniu możemy uzyskać dostęp do pola instancji i ustawić wartości jako:

EMP2.Name = "Judy L"
EMP2.Wiek = 60
EMP2.Emeryt = true
EMP2.Dział = „Zasoby ludzkie”
EMP2.Wynagrodzenie = 119000.99

Dostęp do struktur

Aby uzyskać dostęp do dziedzin struktury, przejdź do operatora kropki. Zaczynamy od nazwy instancji struktury, a następnie nazwy pola.

Na przykład, aby uzyskać nazwę EMP2, możemy zrobić:

fmt.Println (emp2.Nazwa)

Powinno to zwrócić wartość przechowywaną przez określone pole.

Metody struktury

Możemy również dodać metodę do struktury za pomocą odbiornika metody. Rozważ poniższy przykład, który tworzy metodę dla struktury pracownika.

FUNC (E Pracownik) info () String
fmt.Printf („Nazwa: %s \ n wiek: %d \ n emerytowany: %t \ n dział: %s \ n pensja: %f \ n”, e.Nazwa, e.Wiek, e.Na emeryturze, e.Dział, e.Wynagrodzenie)
powrót „gotowe”

Po ogłoszeniu metody możemy utworzyć instancję i ustawić pola jako:

Pracownik VAR e
mi.Name = "Thomas J"
mi.Wiek = 35
mi.Emerytowany = false
mi.Dział = „DevOps Engineer”
mi.Wynagrodzenie = 130000.50

Wreszcie, możemy nazwać metodę jako:

fmt.Println (e.Info ())

Po wywołaniu metody powinniśmy uzyskać dane wyjściowe jako:

Nazwa: Thomas J
Wiek: 35
Emerytowany: Fałsz
Dział: Inżynier DevOps
Wynagrodzenie: 130000.500000
Zrobione

Typ pola struct

Możesz dowiedzieć się typu pola za pomocą pakietu Reflect. Na przykład, aby uzyskać rodzaj pola emerytowego, możemy zrobić:

fmt.Println (refleksja.Typeof (e.Emerytowany))

Powyższy kod zwraca typ pola jako:

::wyjście
Bool

Porównanie struktury

Możesz sprawdzić, czy struktura jest równa innej za pomocą operatora porównawczego. Zauważ, że struktura jest zdefiniowana jako równa, jeśli wszystkie pola mają równą wartość.

Uwaga: Nie wszystkie typy danych są porównywalne.

Poniższy przykład tworzy dwie struktury i porównuje je za pomocą operatora ==.


Pracownik VAR e
mi.Name = "Thomas J"
mi.Wiek = 35
mi.Emerytowany = false
mi.Dział = „DevOps Engineer”
mi.Wynagrodzenie = 130000.50
var emp2 = nowy (pracownik)
EMP2.Name = "Judy L"
EMP2.Wiek = 60
EMP2.Emeryt = true
EMP2.Dział = „Zasoby ludzkie”
EMP2.Wynagrodzenie = 119000.99
Jeśli e == *emp2
fmt.Println („Struktury są równe”)
w przeciwnym razie
fmt.Println („struktury nie są równe”)

Ponieważ struktury nie są równe, blok jest wykonywany.

WSKAZÓWKA: Puste i zerowe wartości są uważane za równe.

Wniosek

Ufw!

To był znakomity samouczek na temat pracy z strukturami w Go Lang. Jednak ten samouczek obejmuje tylko podstawy. Jest o wiele więcej operacji, które możesz zrobić ze strukturami.

Ćwicz dalej i sprawdź nasze samouczki Go, aby dowiedzieć się więcej.