En este tutorial vamos a explicar qué es el constructor de un Smart Cóntract de Solidity y cómo se utiliza.
Qué es un constructor
Un constructor es una función especial y única dentro de un Smart Contract en la que se ejecuta cierto código de inicialización cuando creas una instancia del contrato. El código en el interior del contrato se ejecuta una única vez. No se ejecutará sucesivas veces.
Cómo crear un constructor
Para crear un constructor en un Smart Contract debes declararlo mediante la función constructor, que deberá tener visibilidad pública, recibiendo como parámetros ciertas variables si así lo deseas.
En general, los constructores se suelen usar para inicializar algunas propiedades declaradas en el contrato.
En el siguiente ejemplo agregamos un constructor al contrato MiContrato
que inicializará la variable num
:
pragma solidity ^0.8.0;
contract MiContrato
{
uint num;
constructor (uint _num) {
num = _num;
}
}
Consideraciones adicionales
Los constructores tienen por defecto visibilidad pública. Sin embargo, era habitual especificar la visibilidad en versiones anteriores de Solidity, en caso de que te encuentres con código creado para versiones de hace un tiempo, tal y como ves en el siguiente ejemplo:
pragma solidity ^0.6.0;
contract MiContrato
{
uint num;
constructor (uint _num) public {
num = _num;
}
}
En versiones anteriores de Solidity como la 0.4 también era habitual definir los constructores como funciones corrientes, usando la sentencia function
junto con el nombre del contrato actual como nombre de la función. Sin embargo esto no está soportado desde las versiones 0.5 de Solidity o superiores:
pragma solidity ^0.4.0;
contract MiContrato
{
uint num;
function MiContrato(uint _num) {
num = _num;
}
}
Esto ha sido todo.