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 Slices
Introducción a Golang

bookLongitud vs Capacidad

Podemos determinar la longitud de un array o 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 un slice utilizando la función cap:

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

numbersSlice := randomNumbers[2:7]
fmt.Println(cap(numbersSlice)) // Output: 5

La longitud y la capacidad de un array siempre son iguales. Sin embargo, para un slice, la capacidad puede diferir de la longitud. Por ejemplo, en el caso en que un slice se crea a partir de un array, 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 un slice es el número de elementos desde el startingIndex del slice hasta el final del arreglo original del cual fue creado. En el ejemplo anterior, es 6.

Recuerde que modificar un slice también modifica el arreglo original. Por lo tanto, en el ejemplo dado, agregar un elemento (o valor) a un slice esencialmente actualiza el elemento siguiente al índice final del slice en el arreglo original. En otras palabras, aumenta el tamaño del slice y actualiza los elementos del arreglo original según los elementos/valores agregados. Esto se aclarará 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 se pueden agregar al slice. Si se excede la capacidad del slice, la función append crea y retorna un nuevo slice que no está conectado a una parte del arreglo original. Por lo tanto, queda desvinculado del arreglo original.

Puede observar el siguiente ejemplo: el arreglo original permanece sin cambios incluso cuando se agregan más elementos a su slice:

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 ocurrió porque la porción tenía una capacidad de 3, la cual excedimos. Como resultado, la función append devolvió una nueva porción que ya no hace referencia al arreglo original.

question mark

¿Cuál es la sintaxis correcta para agregar 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 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 un slice utilizando la función cap:

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

numbersSlice := randomNumbers[2:7]
fmt.Println(cap(numbersSlice)) // Output: 5

La longitud y la capacidad de un array siempre son iguales. Sin embargo, para un slice, la capacidad puede diferir de la longitud. Por ejemplo, en el caso en que un slice se crea a partir de un array, 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 un slice es el número de elementos desde el startingIndex del slice hasta el final del arreglo original del cual fue creado. En el ejemplo anterior, es 6.

Recuerde que modificar un slice también modifica el arreglo original. Por lo tanto, en el ejemplo dado, agregar un elemento (o valor) a un slice esencialmente actualiza el elemento siguiente al índice final del slice en el arreglo original. En otras palabras, aumenta el tamaño del slice y actualiza los elementos del arreglo original según los elementos/valores agregados. Esto se aclarará 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 se pueden agregar al slice. Si se excede la capacidad del slice, la función append crea y retorna un nuevo slice que no está conectado a una parte del arreglo original. Por lo tanto, queda desvinculado del arreglo original.

Puede observar el siguiente ejemplo: el arreglo original permanece sin cambios incluso cuando se agregan más elementos a su slice:

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 ocurrió porque la porción tenía una capacidad de 3, la cual excedimos. Como resultado, la función append devolvió una nueva porción que ya no hace referencia al arreglo original.

question mark

¿Cuál es la sintaxis correcta para agregar 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