接口2
上一节
下一节
继续前面 NumberInterface 的例子:
contract NumberInterface {
function getNum(address _myAddress) public view returns (uint);
}我们可以在合约中这样使用:
contract MyContract {
address NumberInterfaceAddress = 0xab38...;
// ^ 这是FavoriteNumber合约在以太坊上的地址
NumberInterface numberContract = NumberInterface(NumberInterfaceAddress);
// 现在变量 `numberContract` 指向另一个合约地址
function someFunction() public {
// 现在我们可以调用在那个合约中声明的 `getNum`函数:
uint num = numberContract.getNum(msg.sender);
// ...在这儿使用 `num`变量做些什么
}
}通过这种方式,只要将您合约的可见性设置为public(公共)或external(外部),它们就可以与以太坊区块链上的任何其他合约进行交互。
实战演习
我已经将代码中 CryptoKitties 合约的地址保存在一个名为 ckAddress 的变量中。现在让我们去读取 CryptoKitties 的内容吧。
创建一个名为
kittyContract的 KittyInterface 实例,并用ckAddress为它初始化。

