Junior — Middle
Оё имкон дорад, ки сохторҳои маълумоти гуногунро муқоиса кунем?
sobes.tech AI
Ҷавоб аз AI
Дар Go, шумо метавонед структураҳои маълумотро муқоиса кунед, агар ҳамаи онҳо поляҳои муқоисашаванда дошта бошанд. Масалан, структураҳое, ки аз намудҳои асосӣ (int, string, bool ва ғайра) иборатанд, метавонанд мустақиман бо истифода аз оператори == муқоиса шаванд.
Аммо, агар структура дорои поляҳое бошад, ки муқоиса кардан мумкин нест (масалан, slices, харитҳо, функсияҳо), муқоисаи мустақими структура хатогии компилятсияро ба вуҷуд меорад.
Маслиҳат барои муқоиса кардани структураҳо:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
p1 := Person{Name: "Alice", Age: 30}
p2 := Person{Name: "Alice", Age: 30}
p3 := Person{Name: "Bob", Age: 25}
fmt.Println(p1 == p2) // true
fmt.Println(p1 == p3) // false
}
Агар структура дорои поляҳое бошад, ки муқоиса кардан мумкин нест, масалан slices, бояд функсияи муқоисаии худро нависед, ки унро аз рӯи унсурҳо мегузарад ва онҳоро ба ҳар як унсур муқоиса мекунад.