我正在尝试通过构想来添加候选人。
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“候选1”到请求的字符串存储指针的无效隐式转换。 addCandidate('候选人1'); ^ ----------- ^
答案 0 :(得分:0)
您正在storage
函数头中使用addCandidate
,而这些是memory
变量。更改为memory
,您就可以开始使用
function addCandidate(string memory _name) private
有关存储和内存关键字的更多信息,请查看here。希望它可以解决您的问题。