在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;
}
}
即可运行成功。或者降低使用的版本,但这并不是个好主意。