从literal_string到请求的字符串存储指针的隐式转换无效

问题描述 投票:0回答:1

我试图通过构造添加候选人。

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”到请求的字符串存储指针的隐式转换无效。 addCandidate('候选人1'); ^ ^ -----------

ethereum solidity
1个回答
0
投票

你在storage函数头中使用addCandidate,而这些是memory变量。切换到memory,你会很高兴。

function addCandidate(string memory _name) private

有关存储和内存关键字的更多见解,请查看here。希望它能解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.