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
Libérer: 2024-11-07 21:59:03
original
875 Les gens l'ont consulté

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
Copier après la connexion

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"
Copier après la connexion

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

#include "path/to/package/example/example.h"
Copier après la connexion

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);
Copier après la connexion

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!

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