Longitud vs. Capacidad de un Slice
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 77 de 109.
En Go, la longitud y la capacidad son dos propiedades diferentes de los slices.
Crea un slice con make:
numbers := make([]int, 3, 5)
fmt.Println("Length:", len(numbers))
fmt.Println("Capacity:", cap(numbers))Esto muestra:
Length: 3
Capacity: 5La longitud es el número de elementos que hay actualmente en el slice. La capacidad es el número máximo de elementos que el slice puede contener antes de tener que expandirse.
Desafío
Principiantelen() y cap() de un slice. La función len() devuelve el número actual de elementos en un slice, mientras que cap() devuelve la capacidad (el número máximo de elementos antes de que sea necesaria una reasignación).Tu tarea es completar el código para imprimir tanto la longitud como la capacidad del slice dado.
Hoja de referencia
En Go, los slices tienen dos propiedades: longitud (length) y capacidad (capacity).
La longitud es el número de elementos que se encuentran actualmente en el slice. La capacidad es el número máximo de elementos que el slice puede contener antes de necesitar crecer.
Usa len() para obtener la longitud y cap() para obtener la capacidad:
numbers := make([]int, 3, 5)
fmt.Println("Length:", len(numbers)) // Length: 3
fmt.Println("Capacity:", cap(numbers)) // Capacity: 5Pruébalo tú mismo
package main
import "fmt"
func main() {
// Un slice con 3 elementos pero capacidad de 5
numbers := make([]int, 3, 5)
// TODO: Imprimir la longitud del slice usando len()
fmt.Println("Length:", ?)
// TODO: Imprimir la capacidad del slice usando cap()
fmt.Println("Capacity:", ?)
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable11Tipos compuestos: Slices
Introducción a los SlicesDeclaración de literales de SliceCreación de Slices con `make`Longitud vs. Capacidad de un SliceAcceso a los elementos del SliceAñadir elementosSlicing de Slices/Arrays existentesIterar sobre SlicesCopiar SlicesResumen - Listas dinámicas3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones