>> Électroniques Technologie >  >> optique >> Télescopes

Comment identifier une procédure comme proche ou lointaine ?

Une procédure est identifiée comme proche ou lointaine en fonction de l'emplacement de la fonction appelée. Si la fonction est définie dans le même package Go que le code qui l'appelle, alors la fonction est considérée comme proche. Si la fonction est définie dans un autre package Go, alors la fonction est considérée comme loin.

La différence entre les fonctions proches et lointaines n'est significative que lors de l'utilisation de l'instruction defer pour gérer les paniques ou la fermeture des ressources à la fin d'une fonction. Lorsqu'une instruction defer est rencontrée, le runtime Go placera une variable sur une pile qui stocke la fonction responsable de la gestion du report. Si la fonction différée est proche, alors la variable stockera un pointeur vers la fonction dans le même package Go. Si la fonction différée est far, alors la variable stockera un pointeur vers une fonction stub qui appellera la fonction far via un appel inter-package.

Les appels inter-packages sont plus chers que les appels intra-packages, il est donc généralement préférable d'utiliser des fonctions proches lorsque cela est possible. Cela peut être fait en organisant votre code en packages de telle manière que les fonctions que vous devez utiliser ensemble soient définies dans le même package.

Télescopes