
Pacchetto context
context.Context, cancellazione, timeout, deadline, valori, WithCancel, WithTimeout
1Qual è il ruolo principale del pacchetto context in Go?
Qual è il ruolo principale del pacchetto context in Go?
Risposta
Il pacchetto context permette di gestire timeout, cancellazioni e deadline in modo coerente attraverso l'intera catena di chiamate. Questo evita le goroutine zombie che continuano a girare quando il loro risultato non è più necessario. Passare sempre il context come primo parametro e verificare regolarmente Done() nelle operazioni lunghe per rispettare le cancellazioni.
2Quale funzione crea un context vuoto senza deadline né cancellazione?
Quale funzione crea un context vuoto senza deadline né cancellazione?
Risposta
context.Background() restituisce un context vuoto, non annullabile, senza deadline né valori. Funge da punto di partenza per creare context derivati ed è tipicamente usato in main, nell'inizializzazione o nei test. Non usare mai nil come context perché causa panic durante l'accesso ai metodi.
3Qual è la differenza tra context.Background() e context.TODO()?
Qual è la differenza tra context.Background() e context.TODO()?
Risposta
context.TODO() funge da placeholder quando il context appropriato non è ancora chiaro o disponibile durante lo sviluppo. context.Background() viene usato per i punti di ingresso reali come main o gli handler HTTP. Entrambi sono funzionalmente identici ma TODO() documenta un'intenzione temporanea che dovrebbe essere sostituita in seguito.
Come creare un context che può essere annullato manualmente?
Quale channel permette di rilevare la cancellazione di un context?
+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
Testing
Pattern di concorrenza
Primitive di sincronizzazione
Framework web Go
Progettazione di API REST
gRPC
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Generics
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