Go (Golang) Estructuras | audacia

En Go (Golang), una estructura es un tipo de datos compuesto que le permite agrupar valores relacionados de diferentes tipos.

Si ha programado en otros lenguajes de programación anteriormente, es posible que esté familiarizado con el concepto de clases en la programación orientada a objetos. Estas clases sirven como una «plantilla» o «modelo» para representar casi cualquier objeto. Estos objetos pueden, a su vez, ser instanciados con diferentes propiedades o métodos.

Go en realidad no proporciona clases, pero proporciona una implementación algo similar en estructurasque le permite definir sus propios tipos complejos con varios campos.

Contenido

sintaxis

A diferencia de las matrices o los sectores, que son homogéneos, las estructuras pueden contener datos heterogéneos. Las estructuras tienen la siguiente firma:

type <name> struct {
 // field1 type
 // field2 type
 // field3 type
 // ...
{

Para definir una estructura en Go, utiliza el type palabra clave seguida del nombre de la estructura (junto con el struct palabra clave), luego proporciona una lista de sus campos encerrados entre llaves. Cada campo se declara con un nombre y su respectivo tipo.

type Person struct {
   name  string
   age   int
   email string
}

En el ejemplo anterior, definimos un Person estructura con name de tipo string, age de tipo inty email de tipo string.

Creación de instancias de estructuras

Una vez que haya definido una estructura, también puede crear instancias (o elementos) de esa estructura. Para instanciar una estructura, declara una variable del tipo de estructura, luego inicializa sus campos usando la notación de puntos:

person := Person{
   name:  "Andy Brinker",
   age:   40,
   email: "[email protected]",
}

En el fragmento de código anterior, creamos un person instancia de la Person struct, inicializando sus campos con los valores proporcionados.

Ahora que hemos visto cómo crear e instanciar una estructura, ¿cómo hacemos para acceder a sus valores?

Acceso a valores de estructura

Para acceder a los valores que pertenecen a una instancia de una estructura, simplemente use la notación de puntos seguida del nombre del campo. Considere el siguiente ejemplo:

fmt.Println(person.name)
fmt.Println(person.age)
fmt.Println(person.email)

Como resultado de las operaciones anteriores, vemos el siguiente resultado:

Andy Brinker
40
[email protected]

En este punto, solo hemos visto cómo podemos definir y acceder a las propiedades de las estructuras. Es decir, en realidad acabamos de trabajar con el datos asociado con los planos que hemos creado, como el name, agey email de Person estructura Ahora la pregunta es: ¿cómo hacemos para usar estructuras para representar no solo las propiedades de datos de una estructura, sino también su comportamiento?

Estructuras y métodos

Ir le permite definir métodos en estructuras, lo que le permite asociar comportamiento con los datos Un método es una función asociada con un tipo de estructura específico. Puede definir métodos especificando el tipo de receptor, que determina en qué tipo se define el método. Considere el siguiente ejemplo:

type Rectangle struct {
   width  float64
   height float64
}


// Method defined on the Rectangle struct
func (r Rectangle) Area() float64 {
   return r.Width * r.Height
}

En el fragmento de código anterior, definimos un Rectangle estructura con dos campos básicos: width y height. Entonces definimos un método llamado Area() sobre el Rectangle struct, que calcula y devuelve el área del rectángulo. Esto permite instancias de la Rectangle struct para no solo tener datos asociados con él (por ejemplo, su width y height), sino también comportamientos (es decir, acciones) que pueden realizar esas instancias. Como tal, podemos utilizar el Area() método:

rect := Rectangle{width: 8, height: 6}
area := rect.Area()
fmt.Println(area)

Después del área de impresión, vemos el siguiente resultado:

Más información sobre estructuras

En Go, una estructura es una colección versátil de campos de datos, cada uno con un tipo asociado. Las estructuras ayudan a servir como una «plantilla» o «modelo» para representar objetos, y se pueden aprovechar para crear tipos de datos «personalizados» en Go. Tomando prestadas muchas funciones similares de la programación orientada a objetos, las estructuras finalmente promueven la modularidad y la composición en los programas que utilizamos. escribir.

Para obtener más información sobre las funciones y cómo aprovecharlas en los programas Go que escribe, inscríbase en el curso Golang de Udacity.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *