Réponse : Il existe différents types de fonctions Go, notamment les types de base (sans paramètres ni types de retour), les types de paramètres, les types de retour, les types variadiques et les fonctions en tant que types de paramètres. Description détaillée : Fonction de type de base : aucun paramètre ni type de retour, utilisée pour l'initialisation ou l'exécution de tâches simples. Fonctions qui acceptent des paramètres : acceptent les paramètres des types spécifiés et les types de paramètres sont spécifiés dans la signature de la fonction. Fonctions qui renvoient des valeurs : peuvent renvoyer plusieurs valeurs d'un type spécifié et le type de valeur de retour est spécifié dans la signature de la fonction. Fonctions variadiques : acceptent un nombre variable d'arguments, rassemblés dans une tranche, en utilisant la syntaxe .... Fonctions en tant que paramètres : prend en charge les fonctions en tant que paramètres, appelées fonctions d'ordre supérieur, qui sont utilisées pour traiter ou faire fonctionner des fonctions.
Types de base des fonctions Go
Dans le langage Go, les fonctions peuvent avoir différents types, et ces types définissent les paramètres et les types de retour de la fonction. Comprendre ces types de base est crucial pour écrire du code Go clair et efficace.
1. Fonction de type de base
Le type de fonction le plus basique n'a pas de paramètres ni de type de retour. Ces fonctions sont généralement utilisées pour initialiser des données ou effectuer des tâches simples.
func hello() { fmt.Println("Hello, world!") }
2. Fonctions qui acceptent des paramètres
La fonction peut accepter un ou plusieurs paramètres. Les types de paramètres sont spécifiés par les types dans la signature de fonction.
func sum(a, b int) int { return a + b }
3. Fonctions qui renvoient des valeurs
La fonction peut renvoyer une ou plusieurs valeurs. Le type de retour est spécifié dans la dernière partie de la signature de la fonction.
func min(a, b int) (int, error) { if a < b { return a, nil } return b, errors.New("b is not less than a") }
4. Fonction de paramètre variable
Les fonctions peuvent utiliser la syntaxe ...
pour accepter un nombre variable de paramètres. Les paramètres sont collectés dans une tranche de type []T
, où T
est le type de paramètre. ...
语法来接受可变数量的参数。这些参数被收集到一个切片中,其类型为 []T
,其中 T
是参数类型。
func printAll(strs ...string) { for _, str := range strs { fmt.Println(str) } }
5. 函数作为参数
Go 语言支持函数作为参数的函数,称为高阶函数。高阶函数通常用于处理函数或对函数进行操作。
func forEach(f func(int), nums []int) { for _, num := range nums { f(num) } }
实战案例
考虑一个将命令行参数相加的程序:
package main import ( "fmt" "os" "strconv" ) func main() { args := os.Args[1:] var sum int for _, arg := range args { num, err := strconv.Atoi(arg) if err != nil { fmt.Printf("%s is not a valid number\n", arg) continue } sum += num } fmt.Printf("Sum: %d\n", sum) }
此程序使用 fmt.Atoi
rrreee
fmt.Atoi
pour convertir les arguments de ligne de commande en entiers et les ajoute. Il utilise des fonctions comme arguments pour gérer chaque argument et sépare la gestion des erreurs de la logique de sommation principale. 🎜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!