Solidez: funciones de vista y puras

Las funciones de vista son funciones de solo lectura, lo que garantiza que las variables de estado no se puedan modificar después de llamarlas. Si las declaraciones que modifican las variables de estado, emiten eventos, crean otros contratos, usan el método de autodestrucción , transfieren éteres a través de llamadas, llaman a una función que no es ‘vista o pura’, usan llamadas de bajo nivel, etc. están presentes en las funciones de vista, entonces el el compilador lanza una advertencia en tales casos. De forma predeterminada, un método de obtención es la función de visualización.

Ejemplo: En el siguiente ejemplo, el contrato Prueba define una función de vista para calcular el producto y la suma de dos enteros sin signo.

Solidity

// Solidity program to 
// demonstrate view
// functions
pragma solidity ^0.5.0;
  
// Defining a contract
contract Test {
      
    // Declaring state 
    // variables
    uint num1 = 2; 
    uint num2 = 4;
  
   // Defining view function to  
   // calculate product and sum 
   // of 2 numbers
   function getResult(
   ) public view returns(
     uint product, uint sum){
       uint num1 = 10;
       uint num2 = 16;
      product = num1 * num2;
      sum = num1 + num2; 
   }
}

Producción : 
 

View Function

Las funciones puras no leen ni modifican las variables de estado, las cuales devuelven los valores solo usando los parámetros pasados ​​a la función o variables locales presentes en ella. Si las declaraciones que leen las variables de estado, acceden a la dirección o al saldo, acceden a cualquier bloque de variable global o mensaje, llaman a una función que no es pura, etc. están presentes en funciones puras, entonces el compilador lanza una advertencia en tales casos.

Ejemplo: En el siguiente ejemplo, el contrato Prueba define una función pura para calcular el producto y la suma de dos números.

Solidity

// Solidity program to  
// demonstrate pure functions
pragma solidity ^0.5.0;
  
// Defining a contract
contract Test {
  
    // Defining pure function to 
    // calculate product and sum
   // of 2 numbers
   function getResult(
   ) public pure returns(
     uint product, uint sum){
      uint num1 = 2; 
      uint num2 = 4;
      product = num1 * num2;
      sum = num1 + num2; 
   }
}

Producción : 
 

Pure Function

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 *