Solidity 编程深入解析:多态、函数重载、库的使用及底层函数
1. 多态的应用
多态允许合约在执行时使用 doSomething 函数的正确实现,尽管合约仅知晓基合约。在进行操作时,需将相关代码中的地址替换为你机器上的实际地址,因为每次部署都会生成新的地址,所以无法预测在 Remix 实例中的地址样式。之后,编译并部署 PolymorphismTest 合约,执行 testPolymorphism 函数。若传入参数 5,应会得到元组 (10, 15) 作为结果。
即便你不了解第三方合约的具体实现,但只要知道它继承的基合约或实现的接口,借助多态,就可通过其地址使用该第三方合约。
2. 函数重载
Solidity 支持函数重载,允许开发者在使用不同参数时使用相同的函数名。当调用已部署合约的函数时,以太坊 ABI 总是使用函数签名哈希的前四个字节,即函数选择器。交易中调用函数时,会包含函数选择器,其后跟随函数参数。函数签名仅考虑函数名和参数类型,而非参数名称。因此,函数可通过改变参数类型实现重载,但不能通过更改参数名称、函数修饰符或返回类型来实现。
以下是示例代码:
contract Base {
function doSomething(uint x) public pure returns(uint) {
return x;
}
function doSomething(uint x, ui
超级会员免费看
订阅专栏 解锁全文
9901

被折叠的 条评论
为什么被折叠?



