Junior — Middle
Este posibil să compari două segmente ale unui array sau listă între ele?
sobes.tech AI
Răspuns de la AI
În Go, nu se pot compara direct două slice-uri folosind operatorul ==, cu excepția comparației cu nil. Pentru compararea conținutului slice-urilor, trebuie să scrii propria ta funcție sau să folosești pachetul reflect.
Exemplu de funcție pentru compararea a două slice-uri de întregi:
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
}
De asemenea, poți folosi reflect.DeepEqual(a, b), dar acesta este mai puțin eficient și potrivit pentru cazuri generale.
Prin urmare, compararea slice-urilor este posibilă, dar necesită o implementare explicită a comparării elementelor.