Soildity中,一个函数可以支持多个参数,同时也支持用于多个返回值,如果没有对返回值进行赋值默认为0。函数定义的模型如下:
function () {internal|external} [pure|constant|view|payable] [returns ()]
下面给出简单的示例:
contract SimpleContract{
function cal(uint a,uint b) returns(uint sum,uint product){
sum = a+b;
product = a*b;
//或者使用 return (a+b,a*b)
}
}
对于普通的函数调用,其传入的参数顺序必须与声明时一致。在Soildity语言中,对函数的调用提供一种特殊的调用方式,命名调用,示例如下:
contract SimpleContract{
function foo(uint a,uint b) {
...
}
function g(){
foo({b:3,a:2});
}
}
Soildity针对函数和变量提供几种修饰词,如下:
external:用于修饰函数,表示函数为一个外部函数,外部函数是合约接口的一部分,这以为着只能通过其他合约发送交易的方 式调用外部函数。
public:用于修饰公开的函数和变量,表示该函数和变量既可以在合约外部访问,也可以在合约内部访问。
internal:内部函数和变量,表示只能在当前的合约或者继承当前合约的其他合约中访问。
private:私有函数和变量,只有当前的合约内部才可以访问。
注:在Soildity中函数依据调用方式的不同可分为