返回介绍

8.8. 函数

发布于 2023-06-19 14:14:33 字数 2062 浏览 0 评论 0 收藏 0

8.8. 函数

8.8.1. 构造方法

构造方法的定义是 contract 与 function 相同

				
pragma solidity ^0.4.18;

contract MyContractByNetkiller {
    /* Constructor */

    function MyContractByNetkiller() public{

    }
}
				
			

8.8.2. 定义函数

没有返回值

				
	function setName(string _name) public{
        name = _name;
    }			
				
			

8.8.3. 函数返回值

有返回值

				
	function getName() public view returns(string){
        return name;
    }
				
			

8.8.4. 参数传递

除了 f(2,3) 这样传递参数,还可以使用类似字典或Map的方式 f({value: 2, key: 3});

				
pragma solidity ^0.4.0;

contract C {
    function f(uint key, uint value) {
        // ...
    }

    function g() {
        // named arguments
        f({value: 2, key: 3});
    }
}				
				
			

8.8.5. 函数的例子

完整的例子

				
pragma solidity ^0.4.18;

contract MyContractByNetkiller {
    /* Constructor */
    string name;
    int num;
    function MyContractByNetkiller() public{
        name = "default";
        num = 1;
    }
    function setName(string _name) public{
        name = _name;
    }
    function getName() public view returns(string){
        return name;
    }
    function setNum(int n) public{
        num = n;
    }
    function addNum(int m) public view returns(int res){
        res = m + num;
    }
}
				
			

8.8.6. Fallback function

				
				
				
			

8.8.7. modifier

modifier 可以理解为 function 的触发器,或者理解为 hook。执行 function的时候会首先运行 modifier

_; 表示执行 modifier 完成所有命令后,继续运行 function 内的逻辑。

				
pragma solidity ^0.4.11;  
  
contract owned {  
    function owned() { owner = msg.sender; }  
    address owner;    
    uint price;
    mapping (address => bool) registeredAddresses;
  
    modifier onlyOwner {  
        require(msg.sender == owner);  
        _;  
    } 
    function changePrice(uint _price) onlyOwner {  
        price = _price;  
    } 
    function close() onlyOwner {  
        selfdestruct(owner);  
    }  
}
				
			

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文