Translate

miércoles, 1 de noviembre de 2023

Arrays en Go


Los arrays son útiles al planificar el diseño detallado de la memoria y, a veces, pueden ayudar a evitar la asignación, pero principalmente son un bloque de construcción para los slice.

Existen grandes diferencias entre la forma en que funcionan los arrys en Go y C. En Go,

  • Los arrys son valores. Asignar un array a otra copia todos los elementos.
  • En particular, si pasa una matriz a una función, recibirá una copia de la matriz, no un puntero a ella.
  • El tamaño de una matriz es parte de su tipo. Los tipos [10]int y [20]int son distintos.

Estas propiedades puede ser útiles pero también costosa; Si desea un comportamiento y eficiencia similares a los de C, puede pasar un puntero a la matriz.


func Sum(a *[3]float64) (sum float64) {

    for _, v := range *a {

        sum += v

    }

    return

}


array := [...]float64{7.0, 8.5, 9.1}

x := Sum(&array)  // Note the explicit address-of operator


Pero este código no sigue el estilo Go, podemos hacer algo similar con Slice que veremos más adelante.