【发布时间】:2019-04-12 16:05:20
【问题描述】:
我有一个以太坊游戏的过早实现。我将我的代码分为两个合同,将“游戏”功能与管理员调用的功能分开。
Admin.sol 继承自 Game.sol,如下所示。在 Admin 中创建了一个 struct 对象,但 Game 看不到它。 (Getter 函数不返回任何内容)
import "./Game.sol";
contract Admin is Game
相同的代码,如果不分成两个合约,也能完美运行。
Admin.sol 中创建对象的函数头:
function createJob(string memory _jname, uint _reward, uint _application_period, uint _job_duration) public {
Game.sol中getter函数的头文件:
function getJob(uint _jID) public view returns (string memory, uint, uint, uint, uint)
我从 getter 得到的是:
结果 { '0': '', '1': , '2': , '3': , '4': }
这清楚地表明它只是在映射中向我显示了一个“空白”点。
是否可以让 Game.sol 看到在 Admin.sol 中进行的数据更改?如果有,是怎么做的?
感谢您的帮助。
【问题讨论】:
-
是的,它将能够看到更新。
-
@Common 我知道它应该,但它目前表现得好像不能
标签: inheritance ethereum solidity smartcontracts