Kapitel 7. Strukturen und Schnittstellen
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Obwohl es möglich wäre, Programme nur mit den in Go eingebauten Datentypen zu schreiben, würde das irgendwann ziemlich mühsam werden. Nehmen wir ein Programm, das mit Formen interagiert:
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
))
}
Dieses Programm ermittelt die Fläche eines Rechtecks und eines Kreises. Wenn du alle Koordinaten im Auge behältst, ist es schwierig zu sehen, was das Programm macht, und das führt wahrscheinlich zu Fehlern.
Strukturen
Eine einfache Möglichkeit, dieses Programm zu verbessern, ist die Verwendung einer Struktur. Eine Struktur ist ein Typ, der benannte Felder enthält. Wir könnten zum Beispiel einen Kreis so darstellen:
type
Circle
struct
{
x
float64
y
float64
r
float64
}
Mit dem Schlüsselwort type
wird ein neuer Typ eingeführt. Es folgt der Name des Typs (Circle
), das Schlüsselwort struct
, um anzuzeigen, dass wir ...
Get Wir stellen vor: 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.