获取公共数组变量的长度(getter)

RFV*_*V5s 4 contract ethereum solidity

我试图从另一个联系人获得数组的长度.怎么样?

contract Lottery {
    unint[] public bets;
}

contract CheckLottery {
    function CheckLottery() {
        Lottery.bets.length;
    }
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*lab 7

您必须在源合约中公开您想要的长度作为函数返回值.

调用合约将需要ABI和合同地址,该地址通过下面的状态var和构造函数来处理.

pragma solidity ^0.4.8;

contract Lottery {

    uint[] public bets;

    function getBetCount()
        public 
        constant
        returns(uint betCount)
    {
        return bets.length;
    }
}

contract CheckLottery {

    Lottery l;

    function CheckLottery(address lottery) {
        l = Lottery(lottery);
    }

    function checkLottery() 
        public
        constant
        returns(uint count) 
    {
        return l.getBetCount();
    }
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.