Publicación
Comparte tu conocimiento.
¿Qué es una función nativa? ¿Podemos llamarla directamente?
He encontrado el término «función nativa» en Move, pero no puedo encontrar información detallada al respecto. Escuché que se declaran en Move pero se definen externamente, a menudo en Rust. ¿Significa eso que son funciones internas a las que las carteras u otros módulos no pueden invocar directamente?
- Move CLI
- Move
Respuestas
3En el lenguaje Move de Sui, una función nativa es aquella que se declara en un módulo Move, pero cuyo código real reside fuera del sistema subyacente, normalmente escrito en Rust para la máquina virtual de Sui, que gestiona tareas de bajo nivel, como la criptografía o las operaciones del sistema, que la sintaxis de alto nivel de Move no puede gestionar directamente. Puedes llamar a estas funciones directamente desde tu código de Move en otros módulos o scripts, al igual que las funciones normales de Move, siempre que estén marcadas como públicas e importes el módulo correctamente, de modo que las carteras y otros contratos puedan utilizarlas sin restricciones especiales. Por ejemplo, algo como sui: :hash: :keccak256 es una función nativa a la que puedes invocar para hacer hash de datos y está disponible en tus transacciones o contratos siempre que hagas referencia a ella correctamente. El problema es que están predefinidas en el marco de Sui, por lo que no puedes crear tus propias funciones nativas en Move; estás limitado a lo que proporciona el sistema y su comportamiento depende de la implementación de Rust. Para obtener más información sobre cómo funcionan las funciones nativas en Move y su uso
De hecho, las funciones nativas de Move se declaran dentro del lenguaje, pero no tienen un cuerpo porque se implementan fuera de Move, generalmente en Rust. A pesar de esto, si la función nativa es pública, puede llamarla como cualquier otra función. No están restringidas solo al uso interno. Puedes invocarlos siempre que dispongas de los permisos y el acceso público necesarios.
Sabes la respuesta?
Inicie sesión y compártalo.