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 :
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 :
Publicación traducida automáticamente
Artículo escrito por jeeteshgavande30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA