Dans Go, vous pouvez utiliser des fonctions anonymes pour hériter des fonctions. La méthode est la suivante : Passez la fonction d'origine en tant que paramètre de la fonction anonyme. Étendre la fonctionnalité de la fonction d'origine via la fonction héritée. appels.
Comment hériter des fonctions dans Go ?
Il n'y a pas de notion directe d'héritage dans le langage Go, mais on peut utiliser des fonctions anonymes pour simuler ce comportement.
Hériter des fonctions à l'aide de fonctions anonymes
Nous pouvons passer une fonction en paramètre de la fonction anonyme et appeler la fonction dans la fonction anonyme.
func greet(name string) { fmt.Printf("Hello, %s!\n", name) } // 继承 greet 函数,并在其基础上添加额外的功能 inheritedGreet := func(name string, numTimes int) { greet(name) for i := 0; i < numTimes-1; i++ { fmt.Printf("Hello again, %s!\n", name) } } // 调用继承的函数 inheritedGreet("Alice", 3)
Cas pratique : Hériter de io.Writer
Nous pouvons utiliser des fonctions anonymes pour hériter de l'interface io.Writer
afin de créer des fonctions de journalisation personnalisées.
// 自定义 Writer,它会在写入数据之前为每一行添加时间戳 type TimestampedWriter struct { w io.Writer } // 继承 io.Writer.Write 方法 func (w *TimestampedWriter) Write(p []byte) (n int, err error) { // 调用 io.Writer.Write 方法,将其作为匿名函数的参数传递 n, err = w.w.Write(append([]byte(time.Now().Format("2006-01-02T15:04:05")), p...)) return } // 创建一个自定义 Writer writer := TimestampedWriter{w: os.Stdout} // 使用自定义 Writer fmt.Fprintln(writer, "Hello, world!")
En utilisant des fonctions anonymes, nous pouvons facilement simuler l'héritage de fonctions dans Go et créer de puissantes fonctions personnalisées.
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!