Solidity es un lenguaje tipificado y que admite herencia,bibliotecas y tipos de datos definidos por el programador.En este artículo hablaremos sobre las variables de solidity debido a que cuenta con algunos tipos de variables que no encontrarás en lenguajes como java o c#. Antes de entrar de lleno a explicar los tipo de variables, primero hablemos de los modificadores de acceso que solidity soporta. Estos son los siguientes :
External : Las variables externas solamente pueden ser llamadas desde otros contratos, desde una transacción o usando la palabra reservada this. Las funciones externas son más eficientes cuando a una función es necesario pasarle un arreglo.
Public : Todas las variables y funciones declaradas con este modificador de acceso, podrán ser llamadas internamente o externamente;
Internal : Todas las variables y funciones declaradas con este modificador de acceso solo podrán ser llamados de forma interna y no podrán ser llamadas con la palabra reservada this.
Private: Todas las variables y funciones declaradas con este modificador de acceso solo podrán ser llamadas desde el contrato en el que fueron declarados. Es decir no tendrán acceso a ellos desde un smart contract hijo del contrato en el que se declaró.
El primer tipo de variable que vamos a conocer es del tipo address. El tipo de variable address es la representación de una dirección para realizar transferencias, es decir puede ser la cuenta de alguna persona o bien puede ser la dirección de un smart contract. La cual luce de la siguiente forma :
Como podrás notar en la imagen anterior no declaramos un tipo de dato esto convierte a la variable como tipo publica por defecto.
Los tipos de valores enteros que encontramos en solidity son int y uint para los dos casos podemos usar las palabras claves uint8/int8 saltando de 8 en 8 hasta uint256/uint256. int sin ningún número es equivalente a int256 , sucede el mismo caso con uint. Y declarados en un smart contract lucen de la siguiente forma:
Solidity soporta arrays de tamaño fijo y de tamaño dinámico. En la siguiente imagen puedes ver como se declara una variable de tamaño dinámico.
Y así es como de vería un array de tamaño fijo :
Otro tipo de dato importante en solidity es el tipo de dato mapping, mapping lo puedes imaginar como una tabla de hash, la cual se inicializa con todos los valores de llave posibles.
En la siguiente imagen podrás ver un ejemplo de mapping de tipo address.
Si gustas conocer un poco más sobre tipos de datos puedes entrar aquí. Y puedes seguir los smart contract de mis artículos en mi github.