Sobes.tech
Junior — Middle

Explica principiul de funcționare al construcției type switch în limbajul Go și în ce constă diferența față de un switch-case obișnuit.

sobes.tech AI

Răspuns de la AI

În limbajul Go, construcția type switch este utilizată pentru a determina un tip specific al unei valori de interfață în timpul execuției. Aceasta permite efectuarea de acțiuni diferite în funcție de tipul la care aparține variabila care implementează interfața.

Exemplu de sintaxă:

switch v := x.(type) {
case int:
    fmt.Println("int", v)
case string:
    fmt.Println("string", v)
default:
    fmt.Println("alt tip")
}

Aici, x este o variabilă de tip interfață, iar v este o variabilă cu un tip specific în fiecare caz.

Diferența față de switch-case-ul obișnuit:

  • Switch-ul obișnuit compară valoarea expresiei cu constante sau expresii.
  • Type switch compară tipul valorii interfeței, nu valoarea în sine.

Type switch este util pentru lucrul cu interfețe, atunci când trebuie să efectuezi acțiuni diferite în funcție de tipul real al obiectului stocat în interfață.