Czym jest interfejs?
Część sekcji Logika i przepływ sterowania ścieżki GO w Coddy. Lekcja 12 z 68.
Interfejs w Go jest jak kontrakt, który określa, jakie zachowania musi mieć dany typ, nie określając, jak te zachowania są implementowane. Możesz myśleć o nim jak o zbiorze sygnatur metod opisujących, co coś potrafi.
Aby lepiej zrozumieć interfejsy, wyobraź sobie gniazdko elektryczne w swoim domu.
Gniazdko ma określony kształt i dostarcza prąd, ale nie obchodzi go, jakie urządzenie do niego podłączysz. Niezależnie od tego, czy jest to lampa, ładowarka do telefonu czy komputer, każde urządzenie z odpowiednią wtyczką może się podłączyć i otrzymać zasilanie. Gniazdko definiuje „interfejs” — wymagania dotyczące podłączenia.
W Go interfejs działa podobnie. Definiuje zestaw sygnatur metod, które typ musi mieć, aby „podłączyć się” do tego interfejsu. Każdy typ, który ma wszystkie wymagane metody, automatycznie spełnia ten interfejs, niezależnie od tego, co jeszcze robi ten typ ani jak implementuje te metody.
Ta koncepcja jest potężna, ponieważ pozwala pisać kod, który działa z każdym typem mogącym wykonywać określone zachowania, dzięki czemu programy są bardziej elastyczne i można ich ponownie używać. Tak jak różne urządzenia mogą korzystać z tego samego gniazdka elektrycznego, różne typy Go mogą spełniać ten sam interfejs, o ile mają wymagane metody.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Zaawansowane sterowanie przepływem
Instrukcja switch z `fallthrough`Przerywanie zagnieżdżonych pętliKontynuowanie określonej pętliInstrukcja `goto`Podsumowanie — zaawansowane sterowanie pętlami4Projekt: Prosta lista zadań
Konfiguracja projektuDodawanie zadania2Struktury i metody
Definiowanie metod dla strukturOdbiorniki przez wartośćOdbiorniki przez wskaźnikWybór odbiornikówMetody a funkcjePodsumowanie — działanie struktur5Mapy w szczegółach
Mapy strukturWskaźniki jako wartości mapSprawdzanie, czy mapy są nilPorównywanie mapPodsumowanie — licznik częstości słów3Interfejsy (podstawy)
Czym jest interfejs?Definiowanie interfejsuImplementowanie interfejsuUżywanie typów interfejsowychPusty interfejsAsercje typuPrzełącznik typówPodsumowanie – kształty i zachowaniaPoćwicz samodzielnie: Kompilator Go online