小编鍾孟儒*_*鍾孟儒的帖子

Solidity“函数需要指定重写的合约”问题

我是 Solidity 的新手,我有一个关于多重继承的问题。

因此,如果我有一些合同,例如:

contract A {

    function foo() public virtual {
        console.log("A");
    }
}

contract B is A {
    function foo() public virtual override {
        console.log("B");
    }
}

contract C is A, B {
    function foo() public override(A, B) {
        super.foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

合约C的功能foo必须是override(A, B)insdeadoverride(B)

或者它会抛出一个错误,比如Function needs to specify overridden contract "A".

那么问题来了,该函数必须指定完整的继承父级。

为什么它不能知道信息contract C is A, B

我的意思是,有什么意义?该overrider(A,B)部分是不必要的。

还是有什么我不知道的技巧?

请给我一个答案,我很好奇,无法通过文档找到一些有用的信息。

inheritance blockchain ethereum solidity smartcontracts

6
推荐指数
1
解决办法
3735
查看次数

Lua 是否有像 Swift 或 C# 中那样的变量?.function() 之类的东西?

大家好!

我最近在用 Lua 编程,厌倦了编写一些代码,比如

if variable ~= nil then
    variable.function()
end
Run Code Online (Sandbox Code Playgroud)


我知道在 C# 或 Swift 中,我们可以做类似的事情

variable?.function()
Run Code Online (Sandbox Code Playgroud)

Lua 有一些方法来实现这种功能吗?

lua

4
推荐指数
1
解决办法
671
查看次数