Constructores en Solidity

Solidity

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.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”