Dans le langage Go, les fonctions peuvent abstraire des fonctions en implémentant des interfaces. Les fonctions qui implémentent des interfaces peuvent être transmises et traitées en tant que valeurs de types d'interface, ce qui améliore l'évolutivité, la testabilité et la réutilisabilité du code.
Implémentation de l'interface dans la fonction du langage Go
Dans le langage Go, l'interface est une abstraction d'un type, qui définit un ensemble de méthodes, et le type qui implémente l'interface doit implémenter toutes les méthodes définies dans l'interface. Les fonctions peuvent également implémenter des interfaces, ce qui leur permet d'être transmises et traitées en tant que valeurs du type d'interface.
Définition de l'interface
La définition d'une interface est similaire à une déclaration de type, elle utilise le mot clé interface
. Par exemple, ce qui suit définit une interface nommée Sortable
, qui définit une méthode Sort
: interface
关键字。例如,下面定义了一个名为 Sortable
的接口,其中定义了一个 Sort
方法:
type Sortable interface { Sort() }
实现接口
函数可以通过实现接口中定义的所有方法来实现接口。要实现接口,只需在函数签名中添加一个 func
类型和接口类型,如下所示:
func (f func([]int) []int)) Sort() { // 实现 Sort 方法 }
在上面的示例中,我们定义了一个具有一个 []int
参数和一个 []int
返回值的函数类型 func([]int) []int
。我们随后使用该函数类型实现了 Sortable
接口。
实战案例
考虑以下用例:我们有一个名为 SortInts
的函数,它对给定的整数切片进行排序。我们可以使用 Sortable
接口来抽象出 Sort
操作,使 SortInts
函数更通用。
// SortInts 对给定整数切片进行排序 func SortInts(nums []int) { sort.Ints(nums) } // 实现 Sortable 接口 func (f SortInts) Sort() { f([]int) }
在 SortInts
函数中,我们使用 sort.Ints
函数对整数切片进行排序。在 Sortable
接口的实现中,我们将 SortInts
函数作为一个函数值调用,有效地调用了 sort.Ints
rrreee
interface d'implémentation
les fonctions peuvent être implémentées en implémentant l'interface définie dans Toutes les méthodes implémentent l'interface. Pour implémenter une interface, ajoutez simplement un typefunc
et le type d'interface dans la signature de la fonction comme suit : rrreee
Dans l'exemple ci-dessus, nous avons défini un[]int avec un
Type de fonction func([]int) []int
avec des paramètres et une valeur de retour []int
. Nous utilisons ensuite ce type de fonction pour implémenter l'interface Sortable
. SortInts
qui trie une tranche donnée d'entiers. Nous pouvons utiliser l'interface Sortable
pour abstraire l'opération Sort
et rendre la fonction SortInts
plus générale. rrreeeDans la fonction SortInts
, nous utilisons la fonction sort.Ints
pour trier les tranches entières. Dans l'implémentation de l'interface Sortable
, nous appelons la fonction SortInts
comme valeur de fonction, appelant effectivement la fonction sort.Ints
. 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!