Sobes.tech
Junior — Middle

Wyjaśnij zasadę działania konstrukcji type switch w języku Go i czym różni się od zwykłego switch-case.

sobes.tech AI

Odpowiedź od AI

W języku Go konstrukcja type switch służy do określenia konkretnego typu wartości interfejsu podczas działania programu. Pozwala na wykonanie różnych działań w zależności od typu, do którego należy zmienna implementująca interfejs.

Przykład składni:

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

Tutaj x jest zmienną typu interfejs, a v jest zmienną o konkretnym typie w każdym przypadku.

Różnica od zwykłego switch-case:

  • Zwykły switch porównuje wartość wyrażenia z konstantami lub wyrażeniami.
  • Type switch porównuje typ wartości interfejsu, a nie samą wartość.

Type switch jest przydatny przy pracy z interfejsami, gdy trzeba wykonać różne działania w zależności od rzeczywistego typu obiektu przechowywanego w interfejsie.