微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么将现有的实体合同实例作为参数传递给合同构造函数

如何解决为什么将现有的实体合同实例作为参数传递给合同构造函数

对于https://ethereumdev.io/interact-with-other-contracts-from-solidity/中的以下代码

contract CounterFactory {
 
    mapping(address => Counter) _counters;

    function createCounter() public {
        require (_counters[msg.sender] == Counter(0));
        _counters[msg.sender] = new Counter(msg.sender);
    }
    
    function increment() public {
        require (_counters[msg.sender] != Counter(0));
        Counter(_counters[msg.sender]).increment(msg.sender);
        // The following line also works as usual.
        // _counters[msg.sender].increment(msg.sender);
    }
    
    function getCount(address account) public view returns (uint256) {
        require (_counters[account] != Counter(0));
        return (_counters[account].getCount());
    }
    
    function getMyCount() public view returns (uint256) {
        return (getCount(msg.sender));
    }
 
}

为什么这一行(将constact实例传递给构造函数)起作用? Counter(_counters[msg.sender]).increment(msg.sender);

我正在https://remix.ethereum.org/上使用Remix IDE

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。