Junior — Middle
Масъул кардани консепсияи ҷамъи навъҳо дар забони Go ва истифодаи он
sobes.tech AI
Ҷавоб аз AI
Дар забони барномасозии Go, консепсияи навъи ҷамъ (sum type) тавассути интерфейсҳо амалӣ мешавад ва имкон медиҳад, ки тағйирёбандаҳо арзишҳои гуногунро қабул кунанд, ки бо интерфейси умумӣ пайваст шудаанд.
Навъи ҷамъ роҳи изҳор кардан аст, ки арзиш метавонад яке аз чанд навъ бошад, ки барои кор бо вариантҳои гуногуни маълумот дар як ҷо кӯмак мекунад.
Маслиҳат барои истифода:
package main
import "fmt"
// Интерфейсро муайян мекунем, ки навъҳои гуногунро муттаҳид мекунад
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("Минтақа:", s.Area())
}
func main() {
var s Shape
s = Circle{Radius: 5}
printArea(s)
s = Rectangle{Width: 3, Height: 4}
printArea(s)
}
Интерфейси Shape ҳамчун навъи ҷамъ барои Circle ва Rectangle амал мекунад. Ин имкон медиҳад, ки функсия намудҳои гуногунро қабул кунад, ки бо рафторе умумӣ пайваст шудаанд.