
Generics
Type parameters, constraints, comparable, any, funkcje generyczne, typy generyczne, wnioskowanie typów
1Czym jest type parameter w Go?
Czym jest type parameter w Go?
Odpowiedź
type parameter to zmienna typu używana w definicjach funkcji lub typów generycznych, deklarowana w nawiasach kwadratowych. Umożliwia pisanie kodu wielokrotnego użytku, który działa z różnymi typami bez poświęcania type safety. type parameter są instancjonowane konkretnymi type argument podczas użycia, co pozwala kompilatorowi weryfikować spójność typów w czasie kompilacji, a nie w czasie wykonania.
2Jaka jest poprawna składnia do zadeklarowania prostej funkcji generycznej?
Jaka jest poprawna składnia do zadeklarowania prostej funkcji generycznej?
Odpowiedź
Poprawna składnia do zadeklarowania funkcji generycznej używa nawiasów kwadratowych bezpośrednio po nazwie funkcji do zdefiniowania type parameter. Constraint any pozwala akceptować dowolny typ, podobnie do interface{}, ale z jaśniejszą semantyką w kontekście generics. Ta składnia została wprowadzona w Go 1.18, aby umożliwić programowanie generyczne przy zachowaniu prostoty języka.
3Co reprezentuje constraint 'any' w Go?
Co reprezentuje constraint 'any' w Go?
Odpowiedź
Constraint any to alias dla interface{}, który reprezentuje zbiór wszystkich możliwych typów w Go. Pozwala on, aby type parameter akceptował dowolny typ bez ograniczeń, oferując maksymalną elastyczność. Choć wygodne, użycie any oznacza rezygnację ze specyficznego sprawdzania typów i często wymaga type assertion, aby uzyskać dostęp do metod lub właściwości typu bazowego.
Jaka jest główna różnica między 'any' a 'comparable' jako constraint?
Jak zadeklarować niestandardowy typ generyczny taki jak stack?
+17 pytań z rozmów
Inne tematy rekrutacyjne Go
Podstawy Go
Struktury danych w Go
Interfejsy w Go
Obsługa błędów
Podstawy goroutines
Channels
Go Modules
Serwer HTTP
Klient HTTP
Kodowanie JSON
Database/SQL
Pakiet context
Testing
Wzorce współbieżności
Prymitywy synchronizacji
Frameworki webowe Go
Projektowanie API REST
gRPC
Reflection
Zarządzanie pamięcią
Optymalizacja wydajności
Go Design Patterns
Microservices
Bezpieczeństwo i uwierzytelnianie
Docker & Containerization
Kubernetes Basics
Zaawansowany Go
Tworzenie CLI
Opanuj Go na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo