Запрошено неверное неявное преобразование из literal_string в указатель хранилища строк - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь добавить кандидата в конструкцию.

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»); ^ ----------- ^

1 Ответ

0 голосов
/ 25 марта 2019

Вы используете storage в заголовке функции addCandidate, тогда как это переменная memory.Измените значение на memory, и все будет в порядке.

function addCandidate(string memory _name) private

Для получения дополнительной информации о ключевых словах хранения и памяти посмотрите здесь .Надеюсь, это спасет вашу проблему.

...