Pasar al contenido principal
Alexys Lozada
José Luján
Manuel Rodriguez
José Luján
Luis Avilés
Álvaro Felipe
José Luján
Beto Quiroga
Jonathan MirCha
Jonathan MirCha
Álvaro Felipe
Alexys Lozada, Álvaro Felipe, Jonathan MirCha
Beto Quiroga
Alexys Lozada
Alexys Lozada
José Luján
Álvaro Felipe
Álvaro Felipe
Jonathan MirCha
Jonathan MirCha
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Camilo Adobe
Álvaro Felipe
José Luján
Jonathan MirCha
Álvaro Felipe
Álvaro Felipe
Beto Quiroga, Alexys Lozada
Álvaro Felipe
Juan Villalvazo
Luis Avilés
Jonathan MirCha
Jonathan MirCha
Jonathan MirCha

¿Qué son los Slices en Go?

En Go, además de los Arrays que poseen un tamaño fijo, existen los Slices que tienen un tamaño variable.

¿Qué son los Slices en Go? - EDteam

En Go, (el lenguaje que utilizamos para nuestra App de cursos en EDteam), a diferencia de los Arrays que poseen un tamaño fijo, los Slices representan una secuencia de tamaño variable de elementos del mismo tipo, es decir poseen un tamaño dinámico. 

Los Slices se caracterizan por: 

  1. Tener un apuntador a un Array
  2. Su tamaño es dinámico
  3. Poseer una capacidad

Un slice se crea al especificar dos indices, un limite bajo y uno alto separados por dos puntos, foo[limite_bajo:limite_alto] lo que seleccionará un rango que incluirá el primer elemento especificado por el limite bajo hasta el elemento del limite alto, pero excluyendo este último.


package main

import (
	"fmt"
)

func main() {
	// Array
	cursos := [6]string{"Go","CSS","Javascript","Vue","Bases de Datos"}
	// Slice
	var frontend []string = cursos[1:4]
	fmt.Println(frontend)
}

El ejemplo anterior cursos[1:4] crea un slice basado en el array cursos que inicia desde el indice 1 hasta el indice 3, así que el slice frontend ahora posee los valores [CSS Javascript Vue]

Al crear el Slice se puede omitir el límite bajo o alto, en tal caso se usarán los valores predeterminados, los cuales son cero para el límite bajo y la longitud del Slice para el límite alto


package main

import (
	"fmt"
)

func main() {
	
	// Array
	cursos := [6]string{"CSS","Javascript","Vue","Go","Bases de Datos"}
	
	frontend := cursos[:3]
	fmt.Println(frontend)

	backend := cursos[3:]
	fmt.Println(backend)
}

La salida del programa anterior es:


[CSS Javascript Vue]
[Go Bases de Datos ]

Un Slice también puede ser creado de forma literal:


package main

import (
	"fmt"
)

func main() {
	profesores := []string{"Alvaro", "Alexys", "Beto", "Daniel"}
	fmt.Println(profesores)
}

O a través de la función make(tipo, tamaño, capacidad), la cuál asigna un Array a cero y retorna un Slice que hace referencia a ese Array, sin embargo el parámetro de capacidad es opcional.


package main

import (  
    "fmt"
)

func main() {  
    numeros := make([]int, 3, 3)
    fmt.Println(numeros)
}

Cuando se crea un Slice con la función make por defecto los valores se ponen a cero, por lo tanto el programa anterior generará la salida [0 0 0].

Puedes aprender más de este lenguaje en el Curso Go Desde Cero.

Suscríbete al blog de EDteam

Ingresa tu correo electrónico para recibir nuestro boletín semanal