Solidez: enumeraciones y estructuras

Las enumeraciones son la forma de crear tipos de datos definidos por el usuario, generalmente se usan para proporcionar nombres para constantes integrales, lo que hace que el contrato sea mejor para el mantenimiento y la lectura. Las enumeraciones restringen la variable con uno de unos pocos valores predefinidos, estos valores de la lista enumerada se denominan enumeraciones . Las opciones se representan con valores enteros a partir de cero, también se puede dar un valor predeterminado para la enumeración. Mediante el uso de enumeraciones es posible reducir los errores en el código.

Sintaxis:

enum <enumerator_name> { 
            element 1, element 2,....,element n
} 

Ejemplo: En el siguiente ejemplo, los Tipos de contrato consisten en un enumerador semana_días y las funciones se definen para establecer y obtener el valor de una variable del tipo enumerador.

Solidity

// Solidity program to demonstrate
// how to use 'enumerator'
pragma solidity ^0.5.0;
  
// Creating a contract
contract Types { 
 
    // Creating an enumerator
    enum week_days
    {
      Monday,
      Tuesday,
      Wednesday,
      Thursday,
      Friday,
      Saturday,
      Sunday
     } 
 
    // Declaring variables of
    // type enumerator
    week_days week;   
     
    week_days choice;
 
    // Setting a default value
    week_days constant default_value
      = week_days.Sunday;
     
    // Defining a function to
    // set value of choice
    function set_value() public {
      choice = week_days.Thursday;
    }
 
    // Defining a function to
    // return value of choice
    function get_choice(
    ) public view returns (week_days) {
      return choice;
    }
       
    // Defining function to
    //  return default value
    function getdefaultvalue(
    ) public pure returns(week_days) { 
        return default_value; 
    } 
}

Producción : 

Enums

estructura

Structs en Solidity le permite crear tipos de datos más complicados que tienen múltiples propiedades. Puede definir su propio tipo creando una estructura .

Son útiles para agrupar datos relacionados.

Las estructuras pueden declararse fuera de un contrato e importarse en otro contrato. Generalmente, se utiliza para representar un registro. Para definir una estructura se utiliza la palabra clave struct , que crea un nuevo tipo de datos. 

Sintaxis:

struct <structure_name> {  
   <data type> variable_1;  
   <data type> variable_2; 
}

Para acceder a cualquier elemento de la estructura se utiliza el ‘operador punto’, que separa la variable de estructura y el elemento al que deseamos acceder. Para definir la variable de estructura se utiliza el tipo de datos nombre de estructura.

Ejemplo: En el siguiente ejemplo, la Prueba de contrato consiste en un Libro de estructura , y las funciones se definen para establecer y obtener valores de los elementos de la estructura.

Solidity

// Solidity program to demonstrate
// how to use 'structures'
pragma solidity ^0.5.0;
 
// Creating a contract
contract test {
 
   // Declaring a structure
   struct Book {
      string name;
      string writter;
      uint id;
      bool available;
   }
 
   // Declaring a structure object
   Book book1;
 
   // Assigning values to the fields
   // for the structure object book2
   Book book2
     = Book("Building Ethereum DApps",
            "Roberto Infante ",
             2, false);
 
   // Defining a function to set values
   // for the fields for structure book1
   function set_book_detail() public {
      book1 = Book("Introducing Ethereum and Solidity",
                   "Chris Dannen",
                    1, true);
   }
 
 
   // Defining function to print
   // book2 details
   function book_info(
   )public view returns (
     string memory, string memory, uint, bool) { 
           
        return(book2.name, book2.writter,
               book2.id, book2.available); 
    }
    
   // Defining function to print
   // book1 details
   function get_details(
   ) public view returns (string memory, uint) {
      return (book1.name, book1.id);
   }
}

Producción : 
 

Structs

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 *