Solidity – 功能
函数基本上是一组可以在程序中的任何地方重复使用的代码,一般可以节省内存的过度使用,减少程序的运行时间。创建一个函数可以减少一遍又一遍地编写相同代码的需要。借助函数,可以将一个程序分成许多小段代码,以便更好地理解和管理。
声明一个函数
在 Solidity 中,通常使用函数关键字定义函数,后跟函数的名称,该名称是唯一的,并且与任何保留关键字都不匹配。函数还可以有一个参数列表,其中包含参数的名称和数据类型。函数的返回值是可选的,但在solidity 中,函数的返回类型是在声明时定义的。
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;
}
}
输出 :
在上面的例子中,你一定见过“view”的用法。函数中的视图确保它们不会修改函数的状态。如果函数的状态,编译器将抛出警告。
- 修改状态变量。
- 发射事件。
- 创建其他合同。
- 使用自毁。
- 通过调用发送以太币。
- 调用任何未标记为纯或视图的函数。
- 使用包含某些操作码的内联汇编。
- 使用低级调用。
函数调用
当用户想要执行该函数时调用该函数。在 Solidity 中,只需在需要调用的地方写入函数的名称即可调用该函数。调用时可以传递不同的参数给函数,多个参数可以传递给一个函数,用逗号分隔。
// 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;
}
}
输出 :
退货声明
return 语句是solidity 提供的可选语句。它是函数的最后一条语句,用于从函数返回值。在 Solidity 中,一个函数可以返回多个值。要从函数返回值,应在函数声明时定义返回值的数据类型。
// 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);
}
}
输出 :