slices.Repeat în Go

Returnează un slice nou care conține slice-ul x repetat de count ori.

Sintaxă
import "slices"

func Repeat[S ~[]E, E any](x S, count int) S

Ce face slices.Repeat

slices.Repeat(x, count) creează un slice nou cu elementele lui x puse unul după altul de count ori. slices.Repeat([]int{0}, 5) dă cinci zerouri, slices.Repeat([]string{"a", "b"}, 2) dă [a b a b].

Dacă count este negativ, programul se oprește cu panic. Pentru texte există strings.Repeat.

Parametri

Parametru Descriere
x Slice-ul repetat.
count De câte ori se repetă (≥ 0).

Ce returnează

Un slice nou, de lungime len(x) * count.

Exemple

Exemplul 1: Valori de pornire și tipare

package main

import (
    "fmt"
    "slices"
)

func main() {
    note := slices.Repeat([]int{10}, 4)
    fmt.Println(note)

    tura := slices.Repeat([]string{"zi", "noapte"}, 3)
    fmt.Println(tura)
    fmt.Println(len(slices.Repeat([]int{1, 2}, 0)))
}

Rezultat

[10 10 10 10]
[zi noapte zi noapte zi noapte]
0

Greșeli frecvente

  • Repeți un slice de pointeri sau de slice-uri și te aștepți la obiecte separate: se repetă aceleași valori, deci toate copiile indică spre aceleași date.

Comenzi înrudite

  • slices.Concat: Lipește mai multe slice-uri într-unul nou, alocat o singură dată.
  • slices.Clone: Returnează o copie a unui slice, cu memorie proprie: modificările copiei nu afectează originalul.