Co to jest refleksja?
Refleksja odnosi się do metody analizy i kontroli zmiennych oraz ich wartości w czasie wykonywania. Jest to bardzo przydatna technika w przypadku abstrakcyjnych elementów struktury. Nie oznacza to, że ogranicza się do struktur. Omówmy różne elementy refleksji w Golang.
Wymagane import
W Go możliwość przeprowadzenia refleksji jest dostarczana przy użyciu pakietu Reflect. Dlatego musimy go zaimportować przed użyciem. Możesz go zaimportować, jak pokazano na fragmencie poniżej:
Importuj „Zastanów się”Po zaimportowaniu możesz zacząć stosować dostarczone metody i funkcje.
Typ()
Jedną metodą z pakietu Reflect jest typeOF (). Ta funkcja pozwala określić typ zmiennej.
Aby go użyć, możemy zrobić:
Pakiet MainPowyższy przykład używa odzwierciedlenia.Typeof () metoda sprawdzania typów danych różnych zmiennych. Powstałe wyjście jest jak pokazano:
Typ => intWartość()
Refleksja.Metoda valueof () zwraca wartość określonej zmiennej. Przykładem jest jak pokazano:
fmt.Println („value =>”, Reporvey.Wartość (var4))Powinno to zwrócić wartość zmiennej var4.
Wyjście:
Wartość => [1 2 3]Kopiuj()
Metoda kopiowania służy do kopiowania elementów określonego źródła do określonego miejsca docelowego. Funkcja będzie wykonywać operację kopiowania, aż miejsce docelowe będzie pełne elementów ze źródła, będą wyczerpane.
Funkcja zwraca liczbę elementów skopiowanych ze źródła do miejsca docelowego.
Pamiętaj, że miejsce docelowe i źródło muszą być tego samego typu.
Rozważ przykład pokazany poniżej:
Pakiet MainW powyższym przykładzie używamy refleksji.Valueof (), aby rzucić zmienną do jej typu. Następnie używamy metody kopiowania () do kopiowania elementów DED do zmiennej SRC. Powstałe wyjście jest jak pokazano:
Kopiowane elementy: 3Swapper ()
Metoda Swapper () pozwala zamienić elementy w plasterze. Przykładem jest to, jak pokazano poniżej:
lst: = [] int 1, 2, 3, 4, 5Powyższy przykład zamienia plasterek z pierwszego indeksu na ostatni. Wyjście jest tak, jak pokazano:
Przed zamianą: [1 2 3 4 5]Numfield ()
Metoda Numfield () zwraca liczbę pól w danej strukturze. Przykładem jest jak pokazano:
Wpisz my_struct structPowyższe powinno zwrócić liczbę pól w strukturze. Wyjście:
4Pole()
Metoda pola () zwraca nazwę i typ danych pól w strukturze.
struct_1: = my_struct „a”, 1, 3.14, falsePowyższy program zwraca nazwę pól w strukturze i ich typach danych. Wyjście:
Field_1 StringMakechan ()
Metoda Makechan () tworzy określony kanał typu i kanał rozmiaru buforów. Przykład:
var str chan stringPowyższe powinno utworzyć kanał typu chan i rozmiar bufora 256. Powstałe wyjście jest jak pokazano:
Kanałowy rodzaj: ChanMakemap ()
Jak sama nazwa wskazuje, funkcja Makemap () tworzy mapę zdefiniowanego typu danych.
Weź poniższy przykład:
var str mapa [string] StringTo tworzy nową mapę. Wyjście:
Rodzaj => mapaWniosek
W tym przewodniku porysowaliśmy powierzchnię korzystania z pakietu odbijania w Go. Należy pamiętać, że pakiet oferuje znacznie więcej niż omówione tutaj.