Einführung
Dieses Labor zielt darauf ab, die Kenntnisse über die Methodenfunktion der Go-Programmiersprache zu testen.
This tutorial is from open-source community. Access the source code
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
Dieses Labor zielt darauf ab, die Kenntnisse über die Methodenfunktion der Go-Programmiersprache zu testen.
Der bereitgestellte Code definiert einen Strukturtyp namens rect
mit zwei Feldern, width
und height
. Zwei Methoden werden für diesen Strukturtyp definiert, area
und perim
. Die area
-Methode berechnet die Fläche des Rechtecks, und die perim
-Methode berechnet den Umfang des Rechtecks. Die Hauptfunktion ruft diese beiden Methoden auf und druckt ihre Ergebnisse.
area
-Methode sollte einen Empfänger vom Typ *rect
haben.perim
-Methode sollte einen Empfänger vom Typ rect
haben.area
-Methode sollte die Fläche des Rechtecks zurückgeben.perim
-Methode sollte den Umfang des Rechtecks zurückgeben.main
-Funktion sollte beide Methoden aufrufen und ihre Ergebnisse drucken.$ go run methods.go
area: 50
perim: 30
area: 50
perim: 30
## Als nächstes betrachten wir Go's Mechanismus zur Gruppierung und
## Benennung verwandter Methodensätze: Schnittstellen.
Hier ist der vollständige Code:
// Go unterstützt _Methoden_, die auf Strukturtypen definiert sind.
package main
import "fmt"
type rect struct {
width, height int
}
// Diese `area`-Methode hat einen _Empfängertyp_ von `*rect`.
func (r *rect) area() int {
return r.width * r.height
}
// Methoden können für Zeiger- oder Wertempfängertypen definiert werden.
// Hier ist ein Beispiel für einen Wertempfänger.
func (r rect) perim() int {
return 2*r.width + 2*r.height
}
func main() {
r := rect{width: 10, height: 5}
// Hier rufen wir die 2 für unsere Struktur definierten Methoden auf.
fmt.Println("area: ", r.area())
fmt.Println("perim:", r.perim())
// Go behandelt die Konvertierung zwischen Werten und
// Zeigern für Methodenaufrufe automatisch. Sie können
// einen Zeigerempfängertyp verwenden, um die Kopierung
// bei Methodenaufrufen zu vermeiden oder um die Methode
// zu ermöglichen, die empfangende Struktur zu mutieren.
rp := &r
fmt.Println("area: ", rp.area())
fmt.Println("perim:", rp.perim())
}
Dieses Labor testet die Fähigkeit, Methoden in Go zu definieren und sie zur Durchführung von Berechnungen auf Strukturtypen zu verwenden. Die area
- und perim
-Methoden werden für den rect
-Strukturtyp definiert, und die main
-Funktion ruft diese Methoden auf und druckt ihre Ergebnisse.