Ce face slices.Replace
slices.Replace(s, i, j, v...) scoate elementele de pe pozițiile i..j-1 și pune în locul lor valorile v. Numărul de valori noi poate fi diferit de cel al elementelor scoase, deci slice-ul se poate lungi sau scurta.
Este echivalentul unui Delete urmat de un Insert la aceeași poziție. Ca și ele, returnează slice-ul nou, care trebuie atribuit.
Parametri
| Parametru | Descriere |
|---|---|
s |
Slice-ul. |
i, j |
Intervalul înlocuit, [i, j). |
v |
Valorile noi. |
Ce returnează
Slice-ul cu înlocuirea făcută.
Exemple
Exemplul 1: Înlocuirea unor elemente
package main
import (
"fmt"
"slices"
)
func main() {
traseu := []string{"Iași", "Vaslui", "Bârlad", "Galați"}
traseu = slices.Replace(traseu, 1, 3, "Roman", "Bacău", "Focșani")
fmt.Println(traseu)
note := []int{5, 6, 7, 8, 9}
note = slices.Replace(note, 1, 4, 10)
fmt.Println(note)
}
Rezultat
[Iași Roman Bacău Focșani Galați]
[5 10 9]
Greșeli frecvente
- Crezi că
jeste numărul de elemente înlocuite: este poziția de final (exclusă), ca las[i:j].
Comenzi înrudite
slices.Insert: Inserează una sau mai multe valori la poziția i și returnează slice-ul rezultat.slices.Delete: Delete șterge elementele s[i:j]; DeleteFunc șterge toate elementele care îndeplinesc o condiție. Ambele returnează slice-ul nou.