
Strutture dati in Go
Array, slice, map, struct, pointer, make vs new, valori nil
1Che cos'è uno slice in Go?
Che cos'è uno slice in Go?
Risposta
Uno slice è una vista dinamica su un array sottostante che consente di manipolare sequenze di elementi di lunghezza variabile. A differenza degli array, che hanno una dimensione fissa definita in fase di compilazione, gli slice possono crescere o ridursi dinamicamente tramite operazioni come append. Questa flessibilità li rende la struttura dati sequenziale più usata in Go per memorizzare collezioni di elementi omogenei.
2Qual è la differenza principale tra un array e uno slice in Go?
Qual è la differenza principale tra un array e uno slice in Go?
Risposta
La differenza fondamentale sta nella dimensione: un array ha una dimensione fissa definita in fase di compilazione e fa parte del tipo stesso, mentre uno slice ha una dimensione dinamica che può cambiare a runtime. Questa distinzione implica che due array di dimensioni diverse sono considerati tipi incompatibili, mentre tutti gli slice dello stesso tipo di elemento sono compatibili. Gli slice sono quindi più flessibili e più usati nel codice Go moderno.
3Come creare uno slice vuoto in Go?
Come creare uno slice vuoto in Go?
Risposta
La sintassi letterale con parentesi quadre vuote seguite da parentesi graffe vuote è il modo idiomatico per creare uno slice vuoto inizializzato. Questo approccio crea uno slice di lunghezza 0 ma non nil, pronto a ricevere elementi tramite append. A differenza di una semplice dichiarazione che produrrebbe uno slice nil, questa inizializzazione esplicita garantisce uno slice utilizzabile immediatamente senza rischio di comportamenti imprevisti durante l'aggiunta di elementi.
Quale funzione si deve usare per inizializzare uno slice con una capacità specifica?
Cosa succede quando si aggiunge un elemento a uno slice la cui capacità è stata raggiunta?
+17 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di 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
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