Solidez – Funciones

Una función es básicamente un grupo de código que se puede reutilizar en cualquier parte del programa, lo que generalmente ahorra el uso excesivo de memoria y disminuye el tiempo de ejecución del programa. Crear una función reduce la necesidad de escribir el mismo código una y otra vez. Con la ayuda de las funciones, un programa se puede dividir en muchas piezas pequeñas de código para una mejor comprensión y administración.

Declaración de una función

En Solidity, una función generalmente se define usando la palabra clave function, seguida del nombre de la función, que es único y no coincide con ninguna de las palabras clave reservadas. Una función también puede tener una lista de parámetros que contengan el nombre y el tipo de datos del parámetro. El valor de retorno de una función es opcional, pero en solidez, el tipo de retorno de la función se define en el momento de la declaración.

function function_name(parameter_list) scope returns(return_type) {
       // block of code
}
// Solidity program to demonstrate 
// function declaration
pragma solidity ^0.5.0;
  
// Creating a contract
contract Test {
  
   // Defining function to calculate sum of 2 numbers
   function add() public view returns(uint){
      uint num1 = 10; 
      uint num2 = 16;
      uint sum = num1 + num2;
      return sum;
   }
}

Producción :
Declaración de una función

En el ejemplo anterior, debe haber visto el uso de «ver» . Ver en una función asegura que no modificarán el estado de la función. Las siguientes declaraciones, si están presentes en la función, modificarán el estado de la función y el compilador lanzará una advertencia.

  • Modificación de variables de estado.
  • Emitiendo eventos.
  • Creación de otros contratos.
  • Usando la autodestrucción.
  • Envío de Ether a través de llamadas.
  • Llamar a cualquier función que no esté marcada como pura o vista.
  • Uso de ensamblaje en línea que contiene ciertos códigos de operación.
  • Uso de llamadas de bajo nivel.

Función de llamada

Se llama a una función cuando el usuario quiere ejecutar esa función. En Solidity, la función simplemente se invoca escribiendo el nombre de la función donde se debe llamar. Se pueden pasar diferentes parámetros a la función durante la llamada, se pueden pasar múltiples parámetros a una función separándolos con una coma.

// Solidity program to demonstrate
// function calling
pragma solidity ^0.5.0;
  
// Creating a contract
contract Test {
  
   // Defining a public view function to demonstrate
   // calling of sqrt function
   function add() public view returns(uint){
      uint num1 = 10; 
      uint num2 = 16;
      uint sum = num1 + num2;
      return sqrt(sum); // calling function
   }
  
   //Defining public view sqrt function
   function sqrt(uint num) public view returns(uint){
       num = num ** 2;
       return num;
   }
}

Producción :
Función de llamada

Declaraciones de devolución

Una declaración de devolución es una declaración opcional proporcionada por la solidez. Es la última instrucción de la función, utilizada para devolver los valores de las funciones. En Solidity, se puede devolver más de un valor desde una función. Para devolver valores de la función, los tipos de datos de los valores devueltos deben definirse en la declaración de la función.

// Solidity program to demonstrate 
// return statements
pragma solidity ^0.5.0;
  
// Creating a contract
contract Test {
  
   // Defining a public view function to
   // demonstrate return statement
   function return_example() public view returns(uint, uint, uint, string memory){
      uint num1 = 10; 
      uint num2 = 16;
      uint sum = num1 + num2;
      uint prod = num1 * num2;
      uint diff = num2 - num1;
      string memory msg = "Multiple return values";
      return (sum, prod, diff, msg); 
   }
}

Producción :
Declaración de devolució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

Deja una respuesta

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