Una variable es básicamente un marcador de posición para los datos que se pueden manipular en tiempo de ejecución. Las variables permiten a los usuarios recuperar y cambiar la información almacenada.
Reglas para nombrar variables
1. Un nombre de variable no debe coincidir con palabras clave reservadas.
2. Los nombres de las variables deben comenzar con una letra o un guión bajo (_), y pueden contener letras de la «a a la z» o «A a la Z» o dígitos del «0 al 9» y también caracteres.
Ejemplo:
Geeks123, geeks, _123geeks are valid variable names 123geeks, $Geeks, 12_geeks are invalid variable names
3. El nombre de las variables distingue entre mayúsculas y minúsculas, es decir
Ejemplo:
Geeks123 and geeks123 are different variables
Declaración de Variables
En Solidity, la declaración de variables es un poco diferente, para declarar una variable, el usuario debe especificar primero el tipo de datos seguido del modificador de acceso.
Sintaxis:
<type> <access modifier> <variable name> ;
Ejemplo:
int public int_var;
Tipos de Variables
Solidity es un lenguaje de tipo estático, es decir, cada variable declarada siempre tiene un valor predeterminado basado en su tipo de datos, lo que significa que no existe el concepto de ‘nulo’ o ‘indefinido’. Solidity admite tres tipos de variables:
1. Variables de estado: los valores de estas variables se almacenan permanentemente en el almacenamiento del contrato. Cada función tiene su propio alcance y las variables de estado siempre deben definirse fuera de ese alcance.
Ejemplo: En el siguiente ejemplo. el contrato Solidity_var_Test inicializa los valores de una variable de estado entera sin signo usando un constructor.
Solidity
// Solidity program to // demonstrate state // variables pragma solidity ^0.5.0; // Creating a contract contract Solidity_var_Test { // Declaring a state variable uint8 public state_var; // Defining a constructor constructor() public { state_var = 16; } }
Producción :
2. Variable local: los valores de estas variables están presentes hasta que se ejecuta la función y no se puede acceder a ellos fuera de esa función. Este tipo de variable se suele utilizar para almacenar valores temporales.
Ejemplo: En el siguiente ejemplo, el contrato Solidity_var_Test define una función para declarar e inicializar las variables locales y devolver la suma de las dos variables locales.
Solidity
// Solidity program to demonstrate // local variables pragma solidity ^0.5.0; // Creating a contract contract Solidity_var_Test { // Defining function to show the declaration and // scope of local variables function getResult() public view returns(uint){ // Initializing local variables uint local_var1 = 1; uint local_var2 = 2; uint result = local_var1 + local_var2; // Access the local variable return result; } }
Producción :
3. Variables globales: estas son algunas variables especiales que se pueden usar globalmente y brindan información sobre las transacciones y las propiedades de BlockChain. Algunas de las variables globales se enumeran a continuación:
Variable | Valor devuelto |
---|---|
blockhash(uint blockNumber) devuelve (bytes32) | Hash de un bloque dado, funciona solo para las 256 transacciones más recientes, excluyendo los bloques actuales |
block.coinbase (dirección a pagar) | Dirección del minero de bloques actual |
bloque.dificultad (uint) | La dificultad del bloque actual. |
bloque.gaslimit (uint) | Límite de gas del bloque actual |
bloque.número (uint) | Número de bloque del bloque actual |
bloque.marca de tiempo (uint) | La marca de tiempo del bloque actual como segundos desde la época de Unix |
gasleft() devuelve (uint256) | cantidad de gasolina que queda |
msg.data (bytes de datos de llamada) | Datos completos de la llamada del bloque |
msg.sender (dirección a pagar) | El remitente del mensaje, es decir, la persona que llama actualmente |
mensaje.sig (bytes4) | Primeros cuatro bytes de datos de llamada, es decir, identificador de función |
valor.mensaje (uint) | Cantidad de Wei enviada con un mensaje |
ahora (uint) | La marca de tiempo del bloque actual |
gasleft() devuelve (uint256) | cantidad de gasolina que queda |
tx.gasprice (uint) | Precio del gas para la transacción |
tx.origin (dirección de pago) | Remitente de la transacción |
Ejemplo: en el siguiente ejemplo, la prueba de contacto usa la variable msg.sender para acceder a la dirección de la persona que implementa el contrato.
Solidity
// Solidity program to // show Global variables pragma solidity ^0.5.0; // Creating a contract contract Test { // Defining a variable address public admin; // Creating a constructor to // use Global variable constructor() public { admin = msg.sender; } }
Producción:
Publicación traducida automáticamente
Artículo escrito por jeeteshgavande30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA