Introduction
Ce laboratoire vise à tester les connaissances sur la fonction des méthodes du langage de programmation Go.
This tutorial is from open-source community. Access the source code
💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici
Ce laboratoire vise à tester les connaissances sur la fonction des méthodes du langage de programmation Go.
Le code fourni définit un type de structure appelé rect
avec deux champs, width
et height
. Deux méthodes sont définies pour ce type de structure, area
et perim
. La méthode area
calcule l'aire du rectangle, et la méthode perim
calcule le périmètre du rectangle. La fonction principale appelle ces deux méthodes et imprime leurs résultats.
area
devrait avoir un type de récepteur de *rect
.perim
devrait avoir un type de récepteur de rect
.area
devrait renvoyer l'aire du rectangle.perim
devrait renvoyer le périmètre du rectangle.main
devrait appeler les deux méthodes et imprimer leurs résultats.$ go run methods.go
area: 50
perim: 30
area: 50
perim: 30
## Ensuite, nous examinerons le mécanisme de Go pour regrouper et
## nommer des ensembles de méthodes apparentées : les interfaces.
Voici le code complet ci-dessous :
// Go prend en charge les _méthodes_ définies sur les types de structure.
package main
import "fmt"
type rect struct {
width, height int
}
// Cette méthode `area` a un _type de récepteur_ de `*rect`.
func (r *rect) area() int {
return r.width * r.height
}
// Les méthodes peuvent être définies pour des types de récepteur
// de pointeur ou de valeur. Voici un exemple d'un récepteur de valeur.
func (r rect) perim() int {
return 2*r.width + 2*r.height
}
func main() {
r := rect{width: 10, height: 5}
// Ici, nous appelons les 2 méthodes définies pour notre structure.
fmt.Println("area: ", r.area())
fmt.Println("perim:", r.perim())
// Go gère automatiquement la conversion entre les valeurs
// et les pointeurs pour les appels de méthode. Vous pouvez vouloir utiliser
// un type de récepteur de pointeur pour éviter la copie lors des appels de méthode
// ou pour permettre à la méthode de modifier la
// structure reçue.
rp := &r
fmt.Println("area: ", rp.area())
fmt.Println("perim:", rp.perim())
}
Ce laboratoire teste la capacité à définir des méthodes en Go et à les utiliser pour effectuer des calculs sur des types de structure. Les méthodes area
et perim
sont définies pour le type de structure rect
, et la fonction main
appelle ces méthodes et imprime leurs résultats.