¿La internal
palabra clave en una definición de función como:
function doSomeThing(uint _param) internal {...}
funciona de manera similar a designar un método como privado en otros idiomas y, por lo tanto, hace que la función solo se pueda llamar desde dentro del contrato?
El internal
modificador se puede comparar mejor con protected
los lenguajes de programación orientados a objetos. Las funciones internas del contrato C son visibles para el código que se ejecuta en la dirección actual (es decir, la instancia del contrato actual), pero también para los contratos derivados de C.
Tenga en cuenta que debido a la arquitectura de EVM, la visibilidad es algo que se puede aplicar estrictamente a nivel de máquina: no hay forma de llamar a una función en otra dirección a menos que esté explícitamente disponible (es decir, no puede simplemente "lanzar" el contrato a otro tipo). Tampoco es posible convocar funciones internas o privadas del mismo tipo de contrato en una dirección diferente.
Sí. El internal
modificador significa que la función solo se puede llamar dentro del propio contrato y cualquier contrato derivado.
private
Las funciones no están disponibles en los contratos derivados.
De los documentos :
interno:
Solo se puede acceder a esas funciones y variables de estado internamente (es decir, desde dentro del contrato actual o contratos derivados de él), sin usar esto.
privado:
Las funciones privadas y las variables de estado solo son visibles para el contrato en el que están definidas y no en los contratos derivados.
jeff coleman
criseth