【Solidity】Interface的使用方法
使用标准的接口可以极大的拓展程序的功能。在solidity语言中,接口可以用来接受相同规则的合约,实现可更新的智能合约。
- interface可以被继承
- interface的function必须是external修饰符
- interface 无法定义constructor
- interface不能有变量
代码范例
文件结构 ├── Employee.sol └── Company.sol
文件1:Employee.sol
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; interface IEmployee { function setName(string memory _name) external; function getName()external view returns(string memory); } contract Employee is IEmployee{ string private name; function setName(string memory _name) public override{ name = _name; } function getName()public override view returns(string memory){ return name; } }
文件2:Company.sol,
通过company 能够链接employee获取和更改employee的数据,必须部署employee合约先,然后通过employee的合约地址,继续部署Company合约
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import { IEmployee } from "./Employee.sol"; contract Company { IEmployee employee; constructor(address _employeeAddress){ employee = IEmployee(_employeeAddress); } function setName(string memory _name) public { employee.setName(_name); } function getName() public view returns (string memory){ return employee.getName(); } }
Facebook评论