gpt4 book ai didi

ethereum - 如何返回结构数组?

转载 作者:行者123 更新时间:2023-12-02 04:33:18 25 4
gpt4 key购买 nike

函数 getBets() 给我错误:错误:解码输出失败:错误:不支持或无效类型:元组。我错过了什么?

pragma solidity ^0.4.11;

contract Casino {

struct Bet {
address by;
uint number;
}

address owner;
Bet[] bets;

event BetPlaced(Bet bet);

function Casino() {
owner = msg.sender;
}

function bet(uint number) {
Bet memory bet;
bet.by = msg.sender;
bet.number = number;

bets.push(bet);

BetPlaced(bet);
}

function getBets() constant returns (Bet[]) {
return bets;
}

function getCount() constant returns (uint length) {
return bets.length;
}
}

最佳答案

目前,如果我是正确的,你不能返回任何东西,除了一个整数数组,因为不支持返回多维数据存储;

您可以使用实验库:

pragma experimental ABIEncoderV2;

代替:

pragma solidity ^0.4.11;

如果您目前正在使用 Remix,则它不可用,并且它是实验性的,因此它可能永远不会成为 Solidity 来源的一部分:https://github.com/ethereum/solidity/issues/2948

如果您确实想返回一个结构数组,您可以将整个数组转换为字节并返回字节。这有点极端,我不建议这样做。

如果您只需要在内部而不是外部访问该方法,您可以通过存储,例如

function getBets() internal returns (Bet[] storage _r) {
_v = bets;
}

关于ethereum - 如何返回结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46426677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com