
Generics
Type parameters, constraints, comparable, any, funzioni generiche, tipi generici, inferenza di tipo
1Cos'è un type parameter in Go?
Cos'è un type parameter in Go?
Risposta
Un type parameter è una variabile di tipo utilizzata nelle definizioni di funzioni o tipi generici, dichiarata tra parentesi quadre. Consente di scrivere codice riutilizzabile che funziona con tipi diversi senza sacrificare la type safety. I type parameter vengono istanziati con type argument concreti durante l'uso, permettendo al compilatore di verificare la coerenza dei tipi in fase di compilazione anziché a runtime.
2Qual è la sintassi corretta per dichiarare una semplice funzione generica?
Qual è la sintassi corretta per dichiarare una semplice funzione generica?
Risposta
La sintassi corretta per dichiarare una funzione generica usa parentesi quadre subito dopo il nome della funzione per definire i type parameter. Il constraint any consente di accettare qualsiasi tipo, simile a interface{} ma con una semantica più chiara nel contesto dei generics. Questa sintassi è stata introdotta in Go 1.18 per consentire la programmazione generica mantenendo la semplicità del linguaggio.
3Cosa rappresenta il constraint 'any' in Go?
Cosa rappresenta il constraint 'any' in Go?
Risposta
Il constraint any è un alias per interface{} che rappresenta l'insieme di tutti i tipi possibili in Go. Consente a un type parameter di accettare qualsiasi tipo senza restrizioni, offrendo la massima flessibilità. Sebbene comodo, usare any significa rinunciare al controllo specifico dei tipi e spesso richiede type assertion per accedere a metodi o proprietà del tipo sottostante.
Qual è la differenza principale tra 'any' e 'comparable' come constraint?
Come dichiarare un tipo generico personalizzato come uno stack?
+17 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di Go
Strutture dati in Go
Interfacce in Go
Gestione degli errori
Goroutine di base
Channels
Go Modules
Server HTTP
Client HTTP
Codifica JSON
Database/SQL
Pacchetto context
Testing
Pattern di concorrenza
Primitive di sincronizzazione
Framework web Go
Progettazione di API REST
gRPC
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Go Design Patterns
Microservices
Sicurezza e autenticazione
Docker & Containerization
Kubernetes Basics
Go Avanzato
Sviluppo CLI
Padroneggia Go per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis