English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En langage Go, il est permis de créer deux ou plusieurs méthodes portant le même nom dans le même paquet, mais ces méthodes doivent avoir des receveursdoivent avoir des types différentsCette fonction n'est pas disponible dans les fonctions Go, ce qui signifie que vous n'êtes pas autorisé à créer deux ou plusieurs méthodes portant le même nom dans le même paquet. Si vous essayez de le faire, le compilateur renverra une erreur.
Syntaxe :
func(nom_receveur_1 Type) méthode_name(paramètres)(type_de_retour){ // Code } func(nom_receveur_2 Type) méthode_name(paramètres)(type_de_retour){ // Code }
Permettons de discuter de ce concept à l'aide d'un exemple :
Exemple1:
package main import "fmt" //Création de structures type student struct { name string branch string } type teacher struct { language string marks int } //Méthodes portant le même nom, mais avec des récepteurs de types différents func (s student) show() { fmt.Println("Student Name : " , s.name) fmt.Println("Branch : " , s.branch) } func (t teacher) show() { fmt.Println("Language:" , t.language) fmt.Println("Student Marks : " , t.marks) } func main() { // Initialisation des valeurs des structures val1 := student{"Rohit", "EEE"} val2 := teacher{"Java", 50} //Appel de la méthode val1.show() val2.show() }
Sortie :
Student Name : Rohit Branch : EEE Language : Java Student Marks : 50
Instructions d'utilisation :Dans l'exemple ci-dessus, nous avons deux méthodes portant le même nom, à savoirshow()Mais les types de récepteurs sont différents. Ici, le premiershow()La méthode contient un récepteur de type s student, le deuxièmeshow()La méthode contient un récepteur de type t teacher. Dansmain()Dans la fonction, nous utilisons les variables de structure respectives pour appeler ces deux méthodes. Si vous essayez d'utiliser le même type de récepteur pour créer cetteshow()Si vous essayez de créer cette méthode avec le même récepteur de type, le compilateur lancera une erreur.
Exemple2:
//Création de méthodes portant le même nom //Récepteurs de types non structurés package main import "fmt" type value_1 string type value_2 int //Création de fonctions portant le même nom //Récepteurs non structurés de types différents func (a value_1) display() value_1 { return a + ".com" } func (p value_2) display() value_2 { return p + 298 } func main() { //Valeur initiale res1 := value_1("w3codebox") res2 := value_2(234) // Affichage des résultats fmt.Println("Résultat", 1: "", res1.display()) fmt.Println("Résultat", 2: "", res2.display()) }
Sortie :
Résultat 1: oldtoolbag.com Résultat 2: 532