Junior — Middle
Vysvětlete koncept typu součtu v jazyce Go a jeho použití
sobes.tech AI
Odpověď od AI
V jazyce Go je koncept souhrnného typu (sum type) implementován pomocí rozhraní (interfaces) a umožňuje popisovat proměnné, které mohou nabývat hodnot z různých typů, spojených společným rozhraním.
Souhrnný typ je způsob, jak vyjádřit, že hodnota může být jedním z několika typů, což je užitečné pro zpracování různých variant dat na jednom místě.
Příklad použití:
package main
import "fmt"
// Definujeme rozhraní, které spojuje různé typy
type Shape interface {
Area() float64
}
type Circle struct {
Radius float64
}
func (c Circle) Area() float64 {
return 3.14 * c.Radius * c.Radius
}
type Rectangle struct {
Width, Height float64
}
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
func printArea(s Shape) {
fmt.Println("Plocha:", s.Area())
}
func main() {
var s Shape
s = Circle{Radius: 5}
printArea(s)
s = Rectangle{Width: 3, Height: 4}
printArea(s)
}
Zde rozhraní Shape funguje jako souhrnný typ pro Circle a Rectangle. To umožňuje funkci přijímat různé typy spojené společným chováním.