Junior — Middle
Selgitage tüübi summa kontseptsiooni Go keeles ja selle kasutamist
sobes.tech AI
Vastus AI-lt
Go keeles kontseptsioon sumtüübist (sum type) realiseeritakse liideste (interfaces) kaudu ning võimaldab kirjeldada muutujaid, mis võivad võtta väärtusi erinevatest tüüpidest, ühendatud ühise liidese kaudu.
Sumtüüp on viis väljendada, et väärtus võib olla üks mitmest tüübist, mis on kasulik erinevate andmetüüpide variantide töötlemiseks ühes kohas.
Näide kasutamisest:
package main
import "fmt"
// Defineerime liidese, mis ühendab erinevaid tüüpe
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("Pindala:", s.Area())
}
func main() {
var s Shape
s = Circle{Radius: 5}
printArea(s)
s = Rectangle{Width: 3, Height: 4}
printArea(s)
}
Siin töötab liides Shape kui sum tüüp Circle ja Rectangle jaoks. See võimaldab funktsioonil vastu võtta erinevaid tüüpe, mis on ühendatud ühise käitumisega.