2. Tipos de Variables

Las variables son como cajas para guardar cosas. En un ambiente de desarrollo y programación, las variables sirven para almacenar datos, números, estructuras, textos...

# Consideraciones importantes

  • Hay tipos simples y comunes de variables.
  • Hay variables complejas y con casos de uso específico.
  • Cuando decimos ‘simples’ y ‘complejas’, nos referimos a la profundidad de entendimiento necesario para manipularlas y saber por qué usarlas.

# Una breve introducción sobre cómo funcionan las variables

Los tipos de datos en solidity son explícitos, es decir, necesitamos definir mediante una palabra clave cuál es el tipo de variable. En el pantallazo abajo, vemos el tipo de variable está en azul y su nombre está en negro.

uint mi_edad = 24;
string nombre = "Juno";
address cartera = msg.sender;

Después de definir el tipo de variable y su nombre, podemos definir su valor o dejar que se defina más adelante en otro paso del programa.

string nombre; //Tipo y nombre definido

string nombre = "Juno"; //Tipo, nombre y valor definido

Ejemplo de variable definida que será usada después. (Ignore el código que no entienda en este momento.)

string nombre;
function cualEsTuNombre(string calldata nombreDigitado) external {
  nombre = nombreDigitado;
}

En este caso tenemos una función llamada cualEsTuNombre que recibirá un texto escrito desde fuera del programa, que se almacenará en una variable temporal llamada nombreDigitado y luego la variable nombre que se definió antes, recibirá este valor. Después de ejecutar esta función, la variable nombre tendrá el valor que se le pasó a través de la función cualEsTuNombre.

# Principales tipos de Variables:

# Dirección (address)

address mi_Cartera = 0xCf48d9ae072758c125804791Cf8c4D390B460c19;

El tipo address almacena direcciones de billeteras y otros contratos.

# Booleano

bool estaListo;
estáListo = false;

bool es un tipo de dato primitivo que representa dos valores: verdadero o falso. En ingles: true or false.

# Números Enteros positivos

uint a;
a = 1;

Para almacenar números enteros positivos usamos el tipo uint y para números de tamaño definido podemos usar por ejemplo uint256 para números de 256 bytes.

# Texto simple (string)

string name;
name = "Tu nombre aquí";

string es la forma más común de almacenar textos pero también podemos usar el formato bytes32 para tamaños definidos y optimización de gas.

# Texto con tamaño específico (bytes)

bytes32 datos;
datos = "Cualquier tipo de dato que no pase de 32 bytes";

# Listas específicas (arrays)

Es muy importante saber cómo funcionan los arreglos porque se usan mucho. Hay una gran similitud entre listas y arrays y la mayor diferencia entre ellos es que arrays son listas de un solo tipo de datos. Solo podemos tener una lista de números, una lista de textos o una lista de direcciones. No podemos mezclar los tipos de datos.

uint[] lista_de_datos_del_mismo_tipo;

Siguiendo la lógica de antes, primero defina el tipo de la variable y luego su nombre. Para definir una matriz, use su "tipo de dato" más "[]".

# Llave y valor (mapping)

Se podría decir que un mapping es como los diccionarios de idiomas. Se utiliza un tipo de "lista" de claves y cada clave contiene un valor.

mapping(address => uint) saldos;

En este caso tenemos una "lista" llamada saldos que tiene direcciones como clave y dentro de cada dirección se almacena un valor.

# Estructura de datos (struct)

Es el tipo de datos más similar a Objetos en otros lenguajes. A menudo se utiliza para definir una estructura estándar de variables que se utilizará en contextos específicos.

struct User {
  uint id;
  string name;
  string[] productosQueCompro;
}

Por ejemplo, si usted crea un programa en el cual necesita el nombre de un usuario, su identificación y una lista de productos o NFTs que ha comprado, y necesita esto en varios contextos de su programa, la forma más comprensible y legible de manejar esto es usando un estructura definida de variables.

# Variables categóricas (Enums)

Los Enums son muy útiles para categorizar datos. Usted puede crear una categoría de "Color" y almacenar varios colores dentro de la misma, así cuando necesite un determinado color puede "solicitar" un valor que se almacena dentro de esa categoría.

enum Color {
  RED,
  GREEN,
  BLUE
}
Last Updated: 9/10/2022, 4:27:54