Maison > développement back-end > Golang > Les bibliothèques Go personnalisées peuvent-elles générer des erreurs de compilation pour les arguments de fonction variadique manquants ?

Les bibliothèques Go personnalisées peuvent-elles générer des erreurs de compilation pour les arguments de fonction variadique manquants ?

Mary-Kate Olsen
Libérer: 2024-12-05 13:03:10
original
829 Les gens l'ont consulté

Can Custom Go Libraries Generate Compile-Time Errors for Missing Variadic Function Arguments?

Les bibliothèques personnalisées peuvent-elles déclencher des erreurs de temps de compilation dans Golang ?

Dans Golang, il n'est pas possible de déclencher une erreur de compilation lors de l'appel d'un fonction avec des paramètres variadiques sans arguments. L'appel de fonction min() est considéré comme valide par la spécification du langage.

Cependant, une solution de contournement existe pour forcer le passage d'au moins un argument. En modifiant la signature de fonction pour inclure un paramètre non variadique et un paramètre variadique, une erreur de compilation peut être générée.

Signature de fonction modifiée :

func min(first int, rest ...int) int {
    // ... Same logic as before
}
Copier après la connexion

Cette signature nécessite au moins un argument (le premier) et autorise plusieurs arguments supplémentaires (repos).

Utilisation :

// This is now a compile-time error
min()

// Valid calls
min(1)
min(1, 2)
min(1, 2, -3)
Copier après la connexion

Remarque :

La modification ci-dessus améliore l'efficacité si un seul argument est transmis car aucune tranche n’est créée. Cependant, les tranches peuvent toujours être transmises à l'aide d'une technique telle que :

s := []int{1, 2, -3}
min(s[0], s[1:]...) // Pass first element and sliced slice as variadic parameter
Copier après la connexion

Si la modification de la signature de la fonction n'est pas réalisable, la panique à l'exécution ou la sortie de l'application est la seule option pour gérer les arguments manquants.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal