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.