Sobes.tech
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.