Junior — Middle
Paaiškinkite tipų sumos koncepciją Go kalboje ir jos naudojimą
sobes.tech AI
Atsakymas iš AI
Go kalboje sum type (suma tipas) koncepcija įgyvendinama per sąsajas (interfaces) ir leidžia aprašyti kintamuosius, kurie gali priimti reikšmes iš skirtingų tipų, sujungtų bendru sąsajos apibrėžimu.
Sum type yra būdas išreikšti, kad reikšmė gali būti vieno iš kelių tipų, kas naudinga apdorojant skirtingas duomenų variacijas vienoje vietoje.
Naudojimo pavyzdys:
package main
import "fmt"
// Apibrėžiame sąsają, jungiančią skirtingus tipus
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("Plotas:", s.Area())
}
func main() {
var s Shape
s = Circle{Radius: 5}
printArea(s)
s = Rectangle{Width: 3, Height: 4}
printArea(s)
}
Čia, sąsaja Shape veikia kaip sum type Circle ir Rectangle. Tai leidžia funkcijai priimti skirtingus tipus, sujungtus bendru elgesiu.