微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用坚固性在remix IDE中的数组中插入用户输入数据?

如何解决如何使用坚固性在remix IDE中的数组中插入用户输入数据?

我是学习扎实语言的初学者。如何以统一语言将用户输入数据插入数组中。以下是我到目前为止编码的代码,但有一些错误

pragma solidity ^0.4.19;

contract SampleContract{
    struct User{
      string name;
      uint age;
    }

   User[] users;
   uint i=0;

   constructor(uint _arrayLength)public{
      users.length = _arrayLength;
   }

   function addUsers(string _name,uint _age) public {
    uint i = 0;
    for(i = 0; i < users.length; i++) {
        users.push(_name);
        users.push(_age);
    }
   }

   function getUser() public view returns (User[]) {
       return users;
   }
}

我收到以下错误

TypeError:函数调用中的参数类型无效。从字符串内存到结构MyContract的隐式转换无效。请求用户存储引用。 users.push(_name); ^ --- ^

TypeError:函数调用中的参数类型无效。从uint256到结构MyContract的隐式转换无效。请求用户存储引用。 users.push(_age); ^-^

谢谢。

解决方法

您需要推动整个Struct。在您的代码中,您将一一推入。

正确的代码是..

pragma solidity ^0.4.19;

contract SampleContract{
    
    
    struct User{
      string name;
      uint age;
    }

   User[] public users;
   
   //uint i=0;

   constructor(uint _arrayLength) public{
      users.length = _arrayLength;
   }

   function addUsers(string _name,uint _age) public {
    
        users.push(User(_name,_age))-1;
   }

   function getUser(uint i) public view returns (string,uint) {
       return (users[i].name,users[i].age);
   }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。