Solidez – Tipos

Solidity es un lenguaje tipado estáticamente, lo que implica que se debe especificar el tipo de cada una de las variables. Los tipos de datos permiten al compilador verificar el uso correcto de las variables. Los tipos declarados tienen algunos valores predeterminados llamados Zero-State , por ejemplo, para bool, el valor predeterminado es False. Del mismo modo, otros lenguajes tipificados estáticamente Solidity tiene tipos de valor y tipos de referencia que se definen a continuación:

Tipos de valor

Las variables de tipo de valor almacenan sus propios datos. Estos son los tipos de datos básicos proporcionados por solidity. Este tipo de variables siempre se pasan por valor. Las variables se copian siempre que se utilicen en los argumentos o la asignación de funciones. Los tipos de datos de tipo de valor en solidez se enumeran a continuación: 

  • Boolean: este tipo de datos acepta solo dos valores True o False.
  • Entero: este tipo de datos se usa para almacenar valores enteros, int y uint se usan para declarar enteros con y sin signo respectivamente.
  • Números de puntos fijos: estos tipos de datos aún no son totalmente compatibles con Solidity, según la documentación de Solidity. Se pueden declarar como fijos y no fijos para números de punto fijo con signo y sin signo de diferentes tamaños, respectivamente.
  • Dirección: la dirección tiene un valor de 20 bytes que representa el tamaño de una dirección de Ethereum. Se puede usar una dirección para obtener saldo o para transferir un saldo por saldo y método de transferencia , respectivamente.
  • Bytes y strings: los bytes se utilizan para almacenar un conjunto de caracteres de tamaño fijo, mientras que la string se utiliza para almacenar el conjunto de caracteres igual o superior a un byte. La longitud de bytes es de 1 a 32, mientras que la string tiene una longitud dinámica. Byte tiene la ventaja de que usa menos gas, por lo que es mejor usarlo cuando conocemos la longitud de los datos.
  • Enumeraciones: se utiliza para crear tipos de datos definidos por el usuario, que se utilizan para asignar un nombre a una constante integral que hace que el contrato sea más legible, mantenible y menos propenso a errores. Las opciones de las enumeraciones se pueden representar mediante valores enteros sin signo a partir de 0.

Ejemplo: En el siguiente ejemplo, los Tipos de contrato inicializan los valores de diferentes tipos de Tipos de valores.

Solidity

// Solidity program to demonstrate
// value types
pragma solidity ^ 0.5.0;   
   
// Creating a contract
contract Types {   
 
    // Initializing Bool variable
    bool public boolean = false;
    
    // Initializing Integer variable
    int32 public int_var = -60313;
 
    //  Initializing String variable
    string public str = "GeeksforGeeks";
 
    // Initializing Byte variable
    bytes1 public b = "a";
     
    // Defining an enumerator
    enum my_enum { geeks_, _for, _geeks } 
 
    // Defining a function to return
    // values stored in an enumerator
    function Enum() public pure returns(
      my_enum) {   
        return my_enum._geeks;   
    }   
}

 

Producción :

Value Types Output

Tipos de referencia

Las variables de tipo de referencia almacenan la ubicación de los datos. No comparten los datos directamente. Con la ayuda del tipo de referencia, dos variables diferentes pueden referirse a la misma ubicación donde cualquier cambio en una variable puede afectar a la otra. El tipo de referencia en solidez se enumeran a continuación: 

  • Arrays: una array es un grupo de variables del mismo tipo de datos en el que la variable tiene una ubicación particular conocida como índice. Al usar la ubicación del índice, se puede acceder a la variable deseada. El tamaño de la array puede ser fijo o dinámico.
  • Struct: Solidity permite a los usuarios crear y definir su propio tipo en forma de estructuras. La estructura es un grupo de diferentes tipos aunque no es posible contener un miembro de su propio tipo. La estructura es una variable de tipo de referencia que puede contener tanto el tipo de valor como el tipo de referencia.
  • Mapeo: el mapeo es un tipo de referencia más utilizado, que almacena los datos en un par clave-valor donde una clave puede ser cualquier tipo de valor. Es como una tabla hash o un diccionario como en cualquier otro lenguaje de programación, donde los datos se pueden recuperar por clave.

Ejemplo: En el siguiente ejemplo, los tipos de contrato inicializan los valores de varios tipos de referencia.

Solidity

// Solidity program to demonstrate
// Reference Types
pragma solidity ^0.4.18;
  
// Creating a contract
contract mapping_example {
 
    // Defining an array   
    uint[5] public array
      = [uint(1), 2, 3, 4, 5] ;
     
    // Defining a Structure
    struct student {
        string name;
        string subject;
        uint8 marks;
    }
 
    // Creating a structure object
    student public std1;
 
    // Defining a function to return
    // values of the elements of the structure
    function structure() public view returns(
      string memory, string memory, uint){
        std1.name = "John";
        std1.subject = "Chemistry";
        std1.marks = 88;
        return (
          std1.name, std1.subject, std1.marks);
    }
     
    // Creating a mapping
    mapping (address => student) result;
    address[] student_result;
}

Producción :

Reference Types Output

 

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 *