【干货】TypeError: Data location must be “memory” for parameter in function, but none was given.

  在Remix使用solidity语言编写智能合约:

pragma solidity ^0.6.1;

contract HelloWorld{
    
    string Myame = "fzj";
    
    function  getName()  public view returns(string){
        return Myame;
    }    
    
    function changeName(string newName) public{
        Myame = newName;
    }
}

  运行发现报错:TypeError: Data location must be “memory” for parameter in function, but none was given.

  原来是新版本要求必须强制指定所有变量的数据位置。string 后必须加上memory。

pragma solidity ^0.6.1;

contract HelloWorld{
    
    string Myame = "fzj";
    
    function  getName()  public view returns(string  memory){
        return Myame;
    }     
  
    function changeName(string memory newName ) public{
        Myame = newName;
    }
}

  即可运行成功。或者降低使用的版本,但这并不是个好主意。

发布了123 篇原创文章 · 获赞 119 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/cbwem/article/details/104351797
今日推荐