golang prend en charge les méthodes du même nom. Le langage Go permet la création de deux ou plusieurs méthodes portant le même nom dans le même package, mais les récepteurs de ces méthodes doivent avoir des types différents. Notez que cette fonctionnalité n'est pas disponible dans les fonctions Go, ce qui signifie que les utilisateurs ne sont pas autorisés à le faire. utilisez la même méthode dans le même package. Créez une méthode du même nom dans le package, le compilateur générera une erreur si vous essayez de le faire.
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
Méthodes du même nom dans Go
Dans le langage Go, il est permis de créer deux ou plusieurs méthodes du même nom dans le même package, mais les récepteurs de ces méthodes doivent avoir des types différents. Cette fonctionnalité n'est pas disponible dans les fonctions Go, ce qui signifie que vous n'êtes pas autorisé à créer une méthode avec le même nom dans le même package, et le compilateur générera une erreur si vous essayez de le faire.
Syntaxe :
func(reciver_name_1 Type) method_name(parameter_list)(return_type){ // Code } func(reciver_name_2 Type) method_name(parameter_list)(return_type){ // Code }
Discutons de ce concept à l'aide d'un exemple :
Exemple 1 :
package main import "fmt" //创建结构体 type student struct { name string branch string } type teacher struct { language string marks int } //名称相同的方法,但有不同类型的接收器 func (s student) show() { fmt.Println("学生姓名:", s.name) fmt.Println("Branch: ", s.branch) } func (t teacher) show() { fmt.Println("Language:", t.language) fmt.Println("Student Marks: ", t.marks) } func main() { // 初始化结构体的值 val1 := student{"Rohit", "EEE"} val2 := teacher{"Java", 50} //调用方法 val1.show() val2.show() }
Sortie :
Note d'utilisation : Dans l'exemple ci-dessus, nous avons deux identiques Méthode de nom, c'est-à-dire show(), mais le type de récepteur est différent. Ici, la première méthode show() contient un récepteur de type s student, et la deuxième méthode show() contient un récepteur de type t professeur. Dans la fonction main(), nous appelons ces deux méthodes à l’aide de leurs variables de structure respectives. Si vous essayez de créer cette méthode show() avec le même type de récepteur, le compilateur générera une erreur.
Exemple 2 :
//创建相同名称的方法 //非结构类型的接收器 package main import "fmt" type value_1 string type value_2 int //创建具有相同名称的函数 //不同类型的非结构接收器 func (a value_1) display() value_1 { return a + ".com" } func (p value_2) display() value_2 { return p + 298 } func main() { //初始化值 res1 := value_1("nhooo") res2 := value_2(234) // 打印显示结果 fmt.Println("Result 1: ", res1.display()) fmt.Println("Result 2: ", res2.display()) }
Sortie :
Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!