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, ապա անհրաժեշտ է գրել սեփական համեմատական ֆունկցիա, որը կանցնի տարրերով և կհամեմատի նրանց մեկ առ մեկ։