
Generics
Type Parameters, Constraints, comparable, any, generische Funktionen, generische Typen, Typinferenz
1Was ist ein Type Parameter in Go?
Was ist ein Type Parameter in Go?
Antwort
Ein Type Parameter ist eine Typvariable, die in generischen Funktions- oder Typdefinitionen verwendet und in eckigen Klammern deklariert wird. Er ermöglicht wiederverwendbaren Code, der mit verschiedenen Typen funktioniert, ohne die Type Safety zu opfern. Type Parameters werden bei der Verwendung mit konkreten Type Arguments instanziiert, sodass der Compiler die Typkonsistenz zur Compile-Zeit statt zur Laufzeit überprüfen kann.
2Was ist die korrekte Syntax zum Deklarieren einer einfachen generischen Funktion?
Was ist die korrekte Syntax zum Deklarieren einer einfachen generischen Funktion?
Antwort
Die korrekte Syntax zum Deklarieren einer generischen Funktion verwendet eckige Klammern unmittelbar nach dem Funktionsnamen, um die Type Parameters zu definieren. Das any-Constraint erlaubt es, jeden Typ zu akzeptieren, ähnlich wie interface{}, aber mit klarerer Semantik im Kontext von Generics. Diese Syntax wurde in Go 1.18 eingeführt, um generische Programmierung zu ermöglichen und gleichzeitig die Einfachheit der Sprache zu bewahren.
3Was repräsentiert das 'any'-Constraint in Go?
Was repräsentiert das 'any'-Constraint in Go?
Antwort
Das any-Constraint ist ein Alias für interface{}, das die Menge aller möglichen Typen in Go repräsentiert. Es erlaubt einem Type Parameter, jeden Typ ohne Einschränkung zu akzeptieren, und bietet maximale Flexibilität. Obwohl praktisch, bedeutet die Verwendung von any, auf spezifische Typprüfung zu verzichten, und erfordert oft Type Assertions, um auf Methoden oder Eigenschaften des zugrunde liegenden Typs zuzugreifen.
Was ist der Hauptunterschied zwischen 'any' und 'comparable' als Constraints?
Wie deklariert man einen benutzerdefinierten generischen Typ wie einen Stack?
+17 Interview-Fragen
Weitere Go-Interviewthemen
Go-Grundlagen
Go-Datenstrukturen
Go-Interfaces
Fehlerbehandlung
Goroutines-Grundlagen
Channels
Go Modules
HTTP-Server
HTTP-Client
JSON-Kodierung
Database/SQL
context-Paket
Testing
Concurrency-Patterns
Synchronisationsprimitive
Go-Web-Frameworks
REST-API-Design
gRPC
Reflection
Speicherverwaltung
Performance-Optimierung
Go Design Patterns
Microservices
Sicherheit und Authentifizierung
Docker & Containerization
Kubernetes Basics
Fortgeschrittenes Go
CLI-Entwicklung
Meistere Go für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten