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 int
y 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
, age
y 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.