从 literal_string 到请求的字符串存储指针的隐式转换无效
Invalid implicit conversion from literal_string to string storage pointer requested
我正在尝试通过结构添加候选人。
contract Election{
struct Candidate {
uint id;
string name;
uint voteCount;
}
mapping(uint => Candidate) public candidates;
uint public candidatesCount;
constructor () public {
addCandidate('Candidate 1');
addCandidate('Candidate 2');
}
function addCandidate(string storage _name) private {
candidatesCount ++;
candidates[candidatesCount] = Candidate(candidatesCount,_name,0);
}
}
预计添加候选人1和2。
但面临这个错误:
从 literal_string "Candidate 1" 到请求的字符串存储指针的隐式转换无效。
添加候选人('Candidate 1');
^------------^
您在 addCandidate
函数头中使用 storage
,而这些是 memory
变量。更改为 memory
,您就可以开始了。
function addCandidate(string memory _name) private
有关存储和内存关键字的更多见解,请查看 here。希望它能解决你的问题。
我正在尝试通过结构添加候选人。
contract Election{
struct Candidate {
uint id;
string name;
uint voteCount;
}
mapping(uint => Candidate) public candidates;
uint public candidatesCount;
constructor () public {
addCandidate('Candidate 1');
addCandidate('Candidate 2');
}
function addCandidate(string storage _name) private {
candidatesCount ++;
candidates[candidatesCount] = Candidate(candidatesCount,_name,0);
}
}
预计添加候选人1和2。 但面临这个错误: 从 literal_string "Candidate 1" 到请求的字符串存储指针的隐式转换无效。 添加候选人('Candidate 1'); ^------------^
您在 addCandidate
函数头中使用 storage
,而这些是 memory
变量。更改为 memory
,您就可以开始了。
function addCandidate(string memory _name) private
有关存储和内存关键字的更多见解,请查看 here。希望它能解决你的问题。