Publication
Partagez vos connaissances.
Qu'est-ce qu'une fonction native et pouvons-nous les appeler directement ?
J'ai rencontré le terme « fonction native » dans Move mais je ne trouve pas d'informations détaillées à ce sujet. J'ai entendu dire qu'ils sont déclarés dans Move mais définis en externe, souvent dans Rust. Cela signifie-t-il qu'il s'agit de fonctions internes qui ne peuvent pas être appelées directement par des portefeuilles ou d'autres modules ?
- Move CLI
- Move
Réponses
3Dans le langage Move de Sui, une fonction native est une fonction que vous déclarez dans un module Move mais dont le code réel se trouve à l'extérieur du système sous-jacent, généralement écrit dans la machine virtuelle Rust for Sui, gérant des tâches de bas niveau telles que la cryptographie ou les opérations système que la syntaxe de haut niveau de Move ne peut pas gérer directement. Vous pouvez appeler ces fonctions directement à partir de votre code Move dans d'autres modules ou scripts, comme les fonctions Move classiques, à condition qu'elles soient marquées comme publiques et que vous importez le module correctement, afin que les portefeuilles et autres contrats puissent les utiliser sans aucune restriction particulière. Par exemple, quelque chose comme sui : :hash : :keccak256 est une fonction native que vous pouvez appeler pour hacher des données, et elle est accessible dans vos transactions ou contrats tant que vous y faites référence correctement. Le hic, c'est qu'elles sont prédéfinies dans le framework de Sui, vous ne pouvez donc pas créer vos propres fonctions natives dans Move ; vous êtes limité à ce que le système fournit et leur comportement dépend de l'implémentation de Rust. Pour en savoir plus sur le fonctionnement des fonctions natives dans Move et leur utilisation
Les fonctions natives de Move sont en effet déclarées dans le langage mais elles n'ont pas de corps car elles sont implémentées en dehors de Move, généralement dans Rust. Malgré cela, si la fonction native est publique, vous pouvez l'appeler comme n'importe quelle autre fonction. Ils ne sont pas réservés à un usage interne uniquement. Vous pouvez les invoquer tant que les autorisations nécessaires et l'accès public sont en place.
Connaissez-vous la réponse ?
Veuillez vous connecter et la partager.