Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Longitud vs Capacidad | Arreglos y Rebanadas
Introducción a Golang

bookLongitud vs Capacidad

Podemos determinar la longitud de un array o de un slice utilizando la función len:

index.go

index.go

copy
12345
randomNumbers := [] int { 1, 4, 5, 7, 9, 10, 12 } fmt.Println(len(randomNumbers)) // Output: 7 numbersSlice := randomNumbers[2:7] fmt.Println(len(numbersSlice)) // Output: 5

Podemos determinar la capacidad de un array o de un slice utilizando la función cap:

randomNumbers := [] int { 1, 4, 5, 7, 9, 10, 12 }
fmt.Println(cap(randomNumbers)) // Salida: 7

numbersSlice := númerosaleatorios[2:7]
fmt.Println(cap(trozoNumeros)) // Salida: 5

La longitud y la capacidad de una matriz son siempre iguales. Sin embargo, para una porción, la capacidad puede diferir de la longitud. Por ejemplo, en el caso de que se cree una porción a partir de una matriz, la capacidad es mayor que la longitud:

index.go

index.go

copy
1234
randomNumbers := [7] int { 1, 4, 5, 7, 9, 10, 12 } numbersSlice := randomNumbers[1:3] fmt.Println(len(numbersSlice)) // Output: 2 fmt.Println(cap(numbersSlice)) // Output: 6

La capacidad de una porción es el número de elementos desde el índiceinicial de la porción hasta el final de la matriz original a partir de la cual se creó. En el ejemplo anterior, es 6.

Recuerde que al modificar una porción también se modifica la matriz original. Por lo tanto, en el ejemplo dado, añadir un elemento (o valor) a una porción esencialmente actualiza el elemento próximo al índice final de la porción en la matriz original. En otras palabras, aumenta el tamaño de la porción y actualiza los elementos de la matriz original basándose en los elementos/valores añadidos. Esto quedará más claro con un ejemplo:

index.go

index.go

copy
12345
randomNumbers := [7] int { 1, 4, 5, 7, 9, 10, 12 } numbersSlice := randomNumbers[1:3] fmt.Println(randomNumbers) // Output: [1 4 5 7 9 10 12] numbersSlice = append(numbersSlice, 20, 30, 40) fmt.Println(randomNumbers) // Output: [1 4 5 20 30 40 12]

La capacidad es útil para determinar cuántos elementos podemos añadir a la porción. Si excedemos la capacidad de la porción, la función append crea y devuelve una nueva porción que no está conectada a ninguna porción del array original. Por lo tanto, se separa del array original.

Puedes ver el siguiente ejemplo: el array original permanece inalterado aunque hayamos añadido más elementos a su porción:

index.go

index.go

copy
12345678
numbers := [] int { 1, 2, 3, 4 } numSlice := numbers[1:3] fmt.Println(numbers) // Outputs: [1 2 3 4] fmt.Println(numSlice) // Outputs: [2 3] fmt.Println(cap(numSlice)) // Outputs: 3 numSlice = append(numSlice, 9, 10) fmt.Println(numSlice) // Outputs: [2 3 9 10] fmt.Println(numbers) // Outputs: [1 2 3 4]

Esto ocurría porque el slice tenía una capacidad de 3, que excedíamos. Como resultado, la función append devolvía una nueva porción que ya no hacía referencia al array original.

question mark

¿Cuál es la sintaxis correcta para añadir un elemento z a una porción llamada alphabets?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 1.96

bookLongitud vs Capacidad

Desliza para mostrar el menú

Podemos determinar la longitud de un array o de un slice utilizando la función len:

index.go

index.go

copy
12345
randomNumbers := [] int { 1, 4, 5, 7, 9, 10, 12 } fmt.Println(len(randomNumbers)) // Output: 7 numbersSlice := randomNumbers[2:7] fmt.Println(len(numbersSlice)) // Output: 5

Podemos determinar la capacidad de un array o de un slice utilizando la función cap:

randomNumbers := [] int { 1, 4, 5, 7, 9, 10, 12 }
fmt.Println(cap(randomNumbers)) // Salida: 7

numbersSlice := númerosaleatorios[2:7]
fmt.Println(cap(trozoNumeros)) // Salida: 5

La longitud y la capacidad de una matriz son siempre iguales. Sin embargo, para una porción, la capacidad puede diferir de la longitud. Por ejemplo, en el caso de que se cree una porción a partir de una matriz, la capacidad es mayor que la longitud:

index.go

index.go

copy
1234
randomNumbers := [7] int { 1, 4, 5, 7, 9, 10, 12 } numbersSlice := randomNumbers[1:3] fmt.Println(len(numbersSlice)) // Output: 2 fmt.Println(cap(numbersSlice)) // Output: 6

La capacidad de una porción es el número de elementos desde el índiceinicial de la porción hasta el final de la matriz original a partir de la cual se creó. En el ejemplo anterior, es 6.

Recuerde que al modificar una porción también se modifica la matriz original. Por lo tanto, en el ejemplo dado, añadir un elemento (o valor) a una porción esencialmente actualiza el elemento próximo al índice final de la porción en la matriz original. En otras palabras, aumenta el tamaño de la porción y actualiza los elementos de la matriz original basándose en los elementos/valores añadidos. Esto quedará más claro con un ejemplo:

index.go

index.go

copy
12345
randomNumbers := [7] int { 1, 4, 5, 7, 9, 10, 12 } numbersSlice := randomNumbers[1:3] fmt.Println(randomNumbers) // Output: [1 4 5 7 9 10 12] numbersSlice = append(numbersSlice, 20, 30, 40) fmt.Println(randomNumbers) // Output: [1 4 5 20 30 40 12]

La capacidad es útil para determinar cuántos elementos podemos añadir a la porción. Si excedemos la capacidad de la porción, la función append crea y devuelve una nueva porción que no está conectada a ninguna porción del array original. Por lo tanto, se separa del array original.

Puedes ver el siguiente ejemplo: el array original permanece inalterado aunque hayamos añadido más elementos a su porción:

index.go

index.go

copy
12345678
numbers := [] int { 1, 2, 3, 4 } numSlice := numbers[1:3] fmt.Println(numbers) // Outputs: [1 2 3 4] fmt.Println(numSlice) // Outputs: [2 3] fmt.Println(cap(numSlice)) // Outputs: 3 numSlice = append(numSlice, 9, 10) fmt.Println(numSlice) // Outputs: [2 3 9 10] fmt.Println(numbers) // Outputs: [1 2 3 4]

Esto ocurría porque el slice tenía una capacidad de 3, que excedíamos. Como resultado, la función append devolvía una nueva porción que ya no hacía referencia al array original.

question mark

¿Cuál es la sintaxis correcta para añadir un elemento z a una porción llamada alphabets?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 4
some-alt