Capítulo 7. Estructuras e interfaces
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Aunque nos sería posible escribir programas utilizando únicamente los tipos de datos incorporados de Go, en algún momento resultaría bastante tedioso. Considera un programa que interactúe con formas:
package
main
import
(
"fmt"
;
"math"
)
func
distance
(
x1
,
y1
,
x2
,
y2
float64
)
float64
{
a
:=
x2
–
x1
b
:=
y2
–
y1
return
math
.
Sqrt
(
a
*
a
+
b
*
b
)
}
func
rectangleArea
(
x1
,
y1
,
x2
,
y2
float64
)
float64
{
l
:=
distance
(
x1
,
y1
,
x1
,
y2
)
w
:=
distance
(
x1
,
y1
,
x2
,
y1
)
return
l
*
w
}
func
circleArea
(
x
,
y
,
r
float64
)
float64
{
return
math
.
Pi
*
r
*
r
}
func
main
()
{
var
rx1
,
ry1
float64
=
0
,
0
var
rx2
,
ry2
float64
=
10
,
10
var
cx
,
cy
,
cr
float64
=
0
,
0
,
5
fmt
.
Println
(
rectangleArea
(
rx1
,
ry1
,
rx2
,
ry2
))
fmt
.
Println
(
circleArea
(
cx
,
cy
,
cr
))
}
Este programa halla el área de un rectángulo y un círculo. Llevar la cuenta de todas las coordenadas dificulta ver lo que está haciendo el programa y probablemente conducirá a errores.
Estructuras
Una forma fácil de mejorar este programa es utilizar una estructura. Una estructura es un tipo que contiene campos con nombre. Por ejemplo, podríamos representar un círculo así:
type
Circle
struct
{
x
float64
y
float64
r
float64
}
La palabra clave type
introduce un nuevo tipo. Va seguida del nombre del tipo (Circle
), la palabra clave struct
para indicar que estamos definiendo un tipo struct
, y una lista de campos dentro de ...
Get Presentación de Go now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.