创建结构会导致 remix ide 出现奇怪的行为

Posted

技术标签:

【中文标题】创建结构会导致 remix ide 出现奇怪的行为【英文标题】:Creating a struct causes weird behaviors in remix ide 【发布时间】:2018-08-05 02:51:24 【问题描述】:

问题: Remix 产生奇怪的行为,字符串参数后跟数组参数

转载:

contract ItemMarket is ERC721 
  struct Item 
    string name;
    uint[3] others;
  

  Item[] public items;

  function createItem(string _name, uint[6] _others) public 
    uint tokenId = items.push(Item(name: _name, traits:_traits)) - 1;
  

当您调用带有参数"hello", [1,2,3] 的remix 中的createItem() 时,第一个参数将转换为\u0000。通过 MEW 与合约交互时,具有相同参数的相同函数调用可以正常工作

【问题讨论】:

这是 Remix 中的一个错误:github.com/ethereum/remix/issues/591 【参考方案1】:

现在可以在最新版本的 Remix IDE 中使用:

pragma solidity 0.5.1;

import "https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token.sol";

contract ItemMarket is ERC721 
  struct Item 
    string name;
    uint[3] traits;
  

  Item[] public items;

  function createItem(string memory name, uint[3] memory traits) public 
    items.push(Item(name:name, traits:traits)) - 1;
  

【讨论】:

以上是关于创建结构会导致 remix ide 出现奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章

在 UISearchDisplayController 中选择一行后返回 UISearchDisplayController 会导致奇怪的行为

创建接口和Concrete类并在向量中使用它们会在调用方法时导致奇怪的行为

角度 4 将包含其他对象的对象传递给 FormBuilder.group 函数会导致奇怪的表单行为

Remix-IDE

函数接受结构指针和返回结构指针有奇怪的行为?

Android ListView 突出显示会导致奇怪的行为