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

Getting the length of public array variable (getter)

我正在尝试从另一个联系人那里获取数组的长度。怎么样?

contract Lottery {
    unint[] public bets;
}

contract CheckLottery {
    function CheckLottery() {
        Lottery.bets.length;
    }
}

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

调用合约需要 ABI 和合约地址,这是通过下面的状态变量和构造函数处理的。

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();
    }
}

希望对您有所帮助。