Junior — Middle
Vysvetlite koncept súčtu typov v jazyku Go a jeho použitie
sobes.tech AI
Odpoveď od AI
V jazyku Go je koncept sum typu (sum type) implementovaný prostredníctvom rozhraní (interfaces) a umožňuje popisovať premenné, ktoré môžu nadobúdať hodnoty z rôznych typov, spojených spoločným rozhraním.
Sum typ je spôsob, ako vyjadriť, že hodnota môže byť jedným z viacerých typov, čo je užitočné pri spracovaní rôznych variánt dát na jednom mieste.
Príklad použitia:
package main
import "fmt"
// Definujeme rozhranie, ktoré spája rôzne 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)
}
Тут, интерфейсът Shape действа като сум тип за Circle и Rectangle. Това позволява на функцията да приема различни типове, обединени от общо поведение.