函数的一般形式
1
| function () {public|internal|external} [pure|constant|view|payable] [returns ()]
|
函数的作用
1、与区块链交互
2、本地执行
3、封装代码
成都创新互联公司专注于中小企业网站建设、策划制作、运行维护,主要提供一站式的企业网站建设服务。建站类型:公司网站建设、品牌网站建设、
外贸网站制作独立站等。创新互联不是单一的建网站,而是结合企业的建站目标去规划网站怎么建,如何利于运营,寻求适合的建站方案。其次,网站后台操作的便捷性也是网站制作过程中的重点,
成都创新互联公司的网站后台简单便捷,真正实现了零基础操作。
带参数函数
1 2 3 4 5 6 7
| uint public num; string public name;
function setparam(uint _num,string _name) public { num = _num; name = _name; }
|
带参函数调用—函数命名参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| pragma solidity ^0.4.23;
contract funcParam{
//状态变量 uint public num; string public name; //代餐函数 function setparam(uint _num,string _name) public { num = _num; name = _name; }
//调用 function Test() public { setparam(99,"bob"); }
//函数命名参数 function Test2() public { setparam({_num:99,_name:"bob"}); }
function Test3() public { setparam({_name:"Alice",_num:999}); }
//错误代码,参数个数不匹配 // function Test4() public { // setparam(100); // }
}
|
函数重载
在一个合约中有相同名字的函数,就是函数的重载。
重载必须要函数的类型与长度都不相同。
下面的例子都是错误的写法
错误1
1 2 3 4 5 6 7
| function fun(){
}
function fun(){
}
|
错误2
1 2 3 4 5 6 7
| function fun() returns(uint){
}
function fun() returns(bytes1){
}
|
错误3
1 2 3 4 5 6 7
| function fun() returns(uint){
}
function fun(){
}
|
正确1
1 2 3 4 5 6 7
| function fun(uint k) public pure{
}
function fun() public pure{
}
|
正确2
1 2 3 4 5 6 7
| function fun2(uint a) public pure{
}
function fun2(bytes1 b) public pure{
}
|
例子剖析1
在下面的例子中,fun3有两个重载的函数。函数test不能够调用fun3(2),因为不能够明确到底是要调用哪一个。
fun3(256)能够执行成功。因为256超过了int8的大值,只能够调用fun3(uint a). 如果想明确,可以强制的转换,例如uint256(2)。
1 2 3 4 5 6 7 8 9 10 11 12 13
| function fun3(uint a) public { num = 256; }
function fun3(uint8 b) public{ num = 8; }
function test() public{ //fun3(2);错误,不明确 fun3(256); fun3(uint256(2)); }
|
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
分享名称:solidity智能合约[27]-函数与函数重载-创新互联
转载来于:
http://6mz.cn/article/epssp.html