Maison >développement back-end >Golang >Pourquoi certaines fonctions Go, comme « math.Floor », sont-elles sans corps ?

Pourquoi certaines fonctions Go, comme « math.Floor », sont-elles sans corps ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-25 21:14:22751parcourir

Why Are Some Go Functions, Like `math.Floor`, Bodiless?

Fonctions sans corps dans Go

Le code fourni présente une situation particulière dans laquelle la fonction Floor apparaît sans corps, dépourvue de corps fonctionnel. Cela peut être rencontré lors de l'examen du code source de math/floor.go.

Après enquête, il devient clair que ce phénomène est intentionnel. Dans Go, les fonctions sans corps sont autorisées pour les implémentations écrites en assembly. L'implémentation réelle peut être trouvée dans les fichiers floor_ARCH.s (par exemple, pour AMD64).

Comme indiqué dans la spécification Go :

A function declaration may omit the body. Such a declaration provides the signature for a function implemented outside Go, such as an assembly routine.

Cette disposition permet aux fonctions de bas niveau d'être défini dans l'assembly tout en conservant une interface Go cohérente et bien typée.

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!

Déclaration:
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