Maison >développement back-end >Golang >Pourquoi y a-t-il des barres obliques et des points dans les noms de fonctions et les prototypes Go ?

Pourquoi y a-t-il des barres obliques et des points dans les noms de fonctions et les prototypes Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 21:59:03909parcourir

Why are there slashes and dots in Go function names and prototypes?

Slashes et points dans les noms de fonctions et les prototypes

Dans l'extrait de code source Go fourni, vous pouvez rencontrer des noms de fonctions et des prototypes contenant des barres obliques ( /) et des points (·). Ces caractères ont une signification particulière dans le contexte du compilateur C interne de Go, qui étend le langage C avec certaines fonctionnalités.

Middot (·)

Le caractère middot (· ) est un caractère spécial reconnu par le compilateur C de Go. Il est utilisé comme séparateur d'espace de noms et est traduit en un point normal (.) lorsqu'il est compilé par l'éditeur de liens Go. Dans les noms de fonctions mentionnés, le point central sert à séparer l'espace de noms du nom réel de la fonction :

runtime∕race·Read
runtime∕race·Write

Slashes (/)

Les barres obliques (/) sont également géré spécialement par le compilateur C de Go. Ils indiquent l'espace de noms « vide » ou « espace réservé ». Lors de l'utilisation de l'instruction d'importation, Go remplacera l'espace de noms vide par le chemin réel vers le package importé.

Par exemple, le code Go suivant :

import examp "path/to/package/example"

Se traduira par le C suivant code après compilation :

#include "path/to/package/example/example.h"

Dans les prototypes de fonctions fournis, les barres obliques indiquent que les fonctions appartiennent au "placeholder" espace de noms :

void runtime∕race·Read(int32 goid, void *addr, void *pc);

Dans l'ensemble, les barres obliques et les points dans ces noms de fonctions et prototypes sont utilisés par le compilateur C interne de Go pour gérer les espaces de noms et permettre une modification flexible des symboles lors de la compilation et de la liaison.

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