Solidez – Variables – Part 1

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 : 

State Variables Output

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 : 
 

Local Variables Output

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:

Global variable

Publicación traducida automáticamente

Artículo escrito por jeeteshgavande30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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