Junior — Middle
Kas on võimalik võrrelda kahe massiivi või nimekirja lõiku omavahel?
sobes.tech AI
Vastus AI-lt
Go keeles ei ole võimalik otse võrrelda kahte viilu (slice) == operaatoriga, välja arvatud võrdlus nil-iga. Viilude sisu võrdlemiseks tuleb kirjutada oma funktsioon või kasutada reflect paketti.
Näide funktsioonist, mis võrdleb kahte täisarvude viilu:
func slicesEqual(a, b []int) bool {
if len(a) != len(b) {
return false
}
for i := range a {
if a[i] != b[i] {
return false
}
}
return true
}
Samuti saab kasutada reflect.DeepEqual(a, b), kuid see on vähem tõhus ja sobib üldjuhtudel.
Seega on viilude võrdlemine võimalik, kuid nõuab elementide võrdlemise selget rakendamist.