Sobes.tech
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, бояд функсияи муқоисаии худро нависед, ки унро аз рӯи унсурҳо мегузарад ва онҳоро ба ҳар як унсур муқоиса мекунад.