re-atrelindo as fatias em go: confusion and Clarity
em Go, as fatias são uma maneira poderosa e eficiente de representar matrizes de dados. No entanto, entender seus meandros pode ser um desafio para iniciantes. Um desses aspectos é o conceito de recortes de recibos. importar "fmt" func main () { a: = make ([] int, 5) printslice ("a", a) B: = Make ([] int, 0, 5) printslice ("b", b) C: = B [: 2] printslice ("c", c) D: = C [2: 5] PrintSlice ("D", D) } func printslice (s string, x [] int) { fmt.printf ("%s len =%d cap =%d%v \ n", s, len (x), cap (x), x) }
O programa cria quatro fatias: a, b, c e d. O resultado surpreendente é que a fatia C, criada como uma fatia dos dois primeiros elementos de B, tem uma capacidade de 5 em vez de 2.
package main import "fmt" func main() { a := make([]int, 5) printSlice("a", a) b := make([]int, 0, 5) printSlice("b", b) c := b[:2] printSlice("c", c) d := c[2:5] printSlice("d", d) } func printSlice(s string, x []int) { fmt.Printf("%s len=%d cap=%d %v\n", s, len(x), cap(x), x) }
Nesse caso, modificar o valor de D também modifica o valor de c, demonstrando que C e D são apenas janelas diferentes sobre a mesma matriz subjacente.
entendendo o conceito de re- O corte é crucial para trabalhar efetivamente com fatias em Go. Ele permite criar fatias que se ajustem dinamicamente a diferentes tamanhos de dados sem a necessidade de copiar ou realocar memória.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3