Sobes.tech
Junior — Middle

Czy można wykonywać konwersję typów między różnymi typami danych w języku Go?

sobes.tech AI

Odpowiedź od AI

W języku Go można wykonywać rzutowanie typów, ale jest ono ścisłe i bezpieczne. Rzutowanie jest możliwe między kompatybilnymi typami, na przykład między typami numerycznymi (int, float64 itp.) lub między typami o tej samej strukturze (np. niestandardowe typy oparte na typach podstawowych). Nie można po prostu rzutować, na przykład, łańcucha znaków na liczbę bez jawnej konwersji.

Przykład rzutowania typów numerycznych:

var a int = 42
var b float64 = float64(a) // jawne rzutowanie int na float64

Można także rzutować interfejsy na konkretne typy za pomocą asercji typu:

var i interface{} = "cześć"
str, ok := i.(string)
if ok {
    fmt.Println(str)
}

W ten sposób, rzutowanie typów w Go wymaga jawnego wskazania i działa tylko dla kompatybilnych typów.