Maison > Article > développement back-end > Explorez les principes en coulisses de l'inférence de type de fonction Golang
La déduction de type de fonction permet d'omettre les paramètres et les types de valeurs de retour des fonctions Go, et le compilateur déduit le type en fonction du corps de la fonction. 1. Utilisation : omettez la déclaration de type, telle que func sum(x, y int) int { return x + y }. 2. En coulisses : le compilateur déduit que le type de valeur de retour est le type de l'expression dans la fonction et que le type de paramètre est le type de paramètre de l'appel de fonction.
Explorez les principes en coulisses de la déduction de type de fonction Go
La déduction de type de fonction est une fonctionnalité puissante du langage Go, qui nous permet d'omettre le type de paramètre et le type de valeur de retour d'une fonction. Le compilateur déduit ces types du corps de la fonction au moment de la compilation. Comment utiliser l'inférence de type de fonction comme cette fonction, elle déduit le type en fonction du corps de la fonction. Tout d'abord, il trouvera la première instruction return de la fonction :
func sum(x, y int) int { return x + y }
Le type d'expression x + y
dans cette instruction est int
. Par conséquent, le compilateur déduit que le type de valeur de retour de la fonction sum
est int
. Ensuite, le compilateur vérifie les types de paramètres dans l'appel de fonction. Dans cet exemple, la fonction sum
est appelée comme suit :
return x + y
La fonction fmt.Println
attend une valeur de type int
en paramètre . Par conséquent, le compilateur déduit que le type de paramètre de la fonction sum
est également de type int
.
Cas pratique
Écrivons un programme simple pour calculer la moyenne de deux nombres en utilisant la déduction de type :
fmt.Println(sum(1, 2))
Dans ce programme, les types de paramètres et les valeurs de retour de la moyenne
fonction Les types ne sont pas spécifiés. Le compilateur déduit ces types du corps de la fonction comme int
et float64
. x + y
表达式类型为 int
。因此,编译器会推断出 sum
函数的返回值类型为 int
。
接下来,编译器会检查函数调用中的参数类型。在本例中,sum
函数被调用如下:
package main import "fmt" func average(x, y int) float64 { return float64(x+y) / 2 } func main() { fmt.Println(average(10, 20)) }
fmt.Println
函数期望一个 int
类型的值作为参数。因此,编译器会推断出 sum
函数的参数类型也为 int
。
实战案例
让我们使用类型推导编写一个简单的程序来计算两个数的平均值:
rrreee在这个程序中,average
函数的参数类型和返回值类型都没有指定。编译器会根据函数体推断出这些类型为 int
和 float64
Conclusion
L'inférence de type de fonction rend l'écriture du code Go facile et rapide. Il permet aux programmeurs de se concentrer sur la logique des fonctions sans se soucier des déclarations de type. En comprenant ce qui se passe en coulisses, nous pouvons mieux tirer parti de cette fonctionnalité.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!