Rebanada de golang

Rebanada de golang
Este artículo se sumergirá profundamente en trabajar con rodajas en el lenguaje de programación GO.

Todos estamos familiarizados con las matrices, ya sea en Go o en otros lenguajes de programación. Una matriz es una colección de elementos de un tipo de datos relacionado (dependiendo). En Go, una matriz solo puede contener elementos de un tipo similar. Las matrices tienen una longitud fija y no pueden crecer o encoger una vez que se define el tamaño.

Una porción es una vista de tamaño dinámico de los elementos de una matriz. Una porción es muy flexible, lo que le permite cambiar el tamaño. Sin embargo, el cambio de tamaño debe permanecer bajo la capacidad de la matriz subyacente.

Declarando una porción

Podemos declarar una porción usando una sintaxis simple como se muestra a continuación:

var slice_name [] datos _type

En la sintaxis anterior, comenzamos especificando el nombre de slice_name seguido de un par de soportes cuadrados y el tipo de datos para el corte.

Notarás que la declaración de corte es muy similar a la de una matriz. Sin embargo, no especificamos un tamaño para una porción.

Crea Slice - Método 1

Hay dos métodos para crear una porción en Go. El primero es usar el formato literal. Esto es muy similar al que se muestra en la sintaxis anterior.

Por ejemplo, el siguiente código crea una porción llamada my_slice:

paquete principal
importar "fmt"
funcmain ()
var my_slice = [] int 1, 2, 3, 4, 5, 6
fmt.Println (my_slice)

El ejemplo anterior crea una porción de tipo int con valores predeterminados. Si no desea utilizar el método VAR de declaración variable, puede usar la sintaxis a continuación:

my_slice: = [] int 1,2,3,4,5,6

El método anterior se conoce como Slice Literal.

Crear rebanada - Método 2

El segundo método para crear una porción en GO es usar la función Make.

La sintaxis es como:

func make ([] t, len, cap) [] t

La función toma un tipo de datos, longitud y capacidad en este caso. La función asignará una matriz con el tamaño especificado por el parámetro de capacidad. La función devuelve una porción que hace referencia a esa matriz.

Para verlo en la práctica, vea a continuación:

slice_var: = make ([] int, 10)
fmt.Println (slice_var)

Este ejemplo declara una porción de tamaño 10 e int tipo. La salida resultante es una porción de 0 valores.

[0 0 0 0 0 0 0 0 0 0 0]

Puede asignar los valores a la porción utilizando la notación del índice.

Para asignar un valor en el índice 1, podemos hacer:

slice_var [0] = 10
fmt.Println (slice_var)

El código anterior debe devolver:

[10 0 0 0 0 0 0 0 0 0 0]

Tenga en cuenta que el elemento en el índice 0 se actualiza para reflejar el nuevo valor.

Propiedades de corte

Hay dos propiedades importantes de una porción con la que debe estar familiarizado. La longitud y la capacidad.

La longitud de la porción se refiere al número total de elementos en poder de la porción, mientras que la capacidad se refiere al número de elementos definidos por la matriz subyacente. Esto se cuenta desde el primer elemento de la porción.

Para obtener la longitud y la capacidad de una porción, puede usar los métodos Len () y Cap (), respectivamente.

Un ejemplo es como se demuestra a continuación:

paquete principal
importar "fmt"
funcmain ()
varmy_slice = [] int 1, 2, 3, 4, 5, 6
fmt.Println ("Longitud:", Len (my_slice))
fmt.Println ("Capacidad:", Cap (my_slice))

El código de ejemplo anterior debe devolver la longitud y la capacidad de la porción como:

Ength: 6
Capacidad: 6

GO SEGURA DEL ÍNDICE

¿Sabes que podemos formar una porción de las rodajas existentes??

Podemos lograr esto especificando un índice unido con un límite bajo y alto. Por ejemplo, para crear una nueva porción con elementos del índice 1 al 5:

new_slice: = my_slice [1: 5]
fmt.Println (new_lice)
La porción resultante se convierte en:
[2 3 4 5]

Iteración de corte

Podemos iterar sobre una matriz usando el clásico para un bucle.

Por ejemplo:

paquete principal
importar "fmt"
funcmain ()
varmy_slice = [] cadena "Python", "JavaScript", "Go", "Rust", "Dart"
Fori, item: = rangemy_slice
fmt.Println (i, artículo)

En el ejemplo anterior, usamos una instrucción para bucle y un rango para iterar sobre el índice y el elemento de la porción. La salida resultante:

0 Python
1 JavaScript
2 Go
3 óxido
4 dardo

Si no desea utilizar la instrucción Rango para recorrer el corte, puede usar la longitud de la porción como:

para i: = 0; i < len(my_slice); i++
fmt.Println (my_slice [i])

El ejemplo anterior devolverá una salida similar al usar la construcción de rango.

Ir a copiar elemento

El método de copia le permite copiar elementos de una porción a otra. Considere el ejemplo a continuación:

funccopy_slice ()
slice_1: = [] int 1, 2, 3, 4, 5
slice_2: = [] int 6, 7, 8, 9, 10
new_slice: = copy (slice_1, slice_2)
fmt.Printf ("%d elementos copiados", new_slice)

La función devolverá el número total de elementos copiados.

Rebanada multidimensional

También puede crear una porción multidimensional. Básicamente significa una porción de rebanadas. Un ejemplo es como se muestra:

funcmulti_slice ()
multi_slice: = [] [] int
1, 2,
3, 4,
5, 6,
7, 8,

fmt.Println (multi_slice)

El ejemplo anterior debe imprimir una porción multidimensional como:

[[1 2] [3 4] [5 6] [7 8]]

Para acceder a elementos en una matriz multidimensional, puede usar índices como:

fmt.Println (multi_slice [0] [0])

La sintaxis anterior devuelve el primer elemento en la primera porción.

Conclusión

Esta guía te ayuda con los conceptos básicos de trabajar con rodajas en Go. Aunque no podemos agotar rodajas en el alcance de este tutorial, debería comenzar a comenzar.