3.2 Tipos de datos en Solidity
En Solidity, existen varios tipos de datos básicos que puedes usar para almacenar información en tus contratos inteligentes. Los tipos más comunes incluyen uint
, int
, string
, bool
, y address
. Vamos a explorar cada uno de ellos en detalle y proporcionaremos ejemplos de cómo usarlos en tu código.
uint
El tipo uint
(entero sin signo) se usa para almacenar valores enteros no negativos. La versión más común es uint256
, que puede almacenar valores entre 0 y 2²⁵⁶-1. Si no se especifica un tamaño, uint
es sinónimo de uint256
.
Ejemplo:
pragma solidity ^0.8.0 contract EjemploUint { uint public numero constructor() { numero = 42 } function setNumero(uint _numero) public { numero = _numero } function getNumero() public view returns (uint) { return numero } }
int
El tipo int
(entero con signo) se usa para almacenar valores enteros que pueden ser positivos o negativos. La versión más común es int256
, que puede almacenar valores entre -2²⁵⁶/2 y 2²⁵⁶/2-1.
Ejemplo:
pragma solidity ^0.8.0 contract EjemploInt { int public numero constructor() { numero = -42 } function setNumero(int _numero) public { numero = _numero } function getNumero() public view returns (int) { return numero } }
string
El tipo string
se usa para almacenar cadenas de caracteres. Las cadenas en Solidity no tienen un tamaño fijo y sus operaciones pueden ser más costosas en términos de gas.
Ejemplo:
pragma solidity ^0.8.0 contract EjemploString { string public texto constructor() { texto = Hola, Blockchain! } function setTexto(string memory _texto) public { texto = _texto } function getTexto() public view returns (string memory) { return texto } }
bool
El tipo bool
se usa para almacenar valores booleanos, es decir, puede tener un valor de true
(verdadero) o false
(falso).
Ejemplo:
pragma solidity ^0.8.0 contract EjemploBool { bool public estado constructor() { estado = true } function setEstado(bool _estado) public { estado = _estado } function getEstado() public view returns (bool) { return estado } }
address
El tipo address
se usa para almacenar direcciones de cuentas de Ethereum. Puedes realizar algunas operaciones específicas sobre las direcciones como transferir Ether.
Ejemplo:
pragma solidity ^0.8.0 contract EjemploAddress { address public cuenta constructor() { cuenta = msg.sender // La cuenta que despliega el contrato } function setCuenta(address _cuenta) public { cuenta = _cuenta } function getCuenta() public view returns (address) { return cuenta } function enviarEther(address payable _destino) public payable { _destino.transfer(msg.value) } }
Deja una respuesta