Как исправить ошибку «это объявление затеняет существующее объявление» в солидности? - PullRequest
0 голосов
/ 23 мая 2019

Я пишу код для разработки умного контракта. Но я постоянно получаю одну и ту же ошибку каждый раз, говоря: «Предупреждение: это объявление затеняет существующее объявление». Я не нашел возможного решения, так как я новичок в языке солидности:

contract Diamondtracability {

uint private diamondIDengravement;
uint private diamondIDdatabase;
uint public buyerID;

   //uint private diamondIDengravement = diamondIDdatabase;
   //string[] public diamondDirectory;

constructor() public {
    diamondIDengravement = 1;
    diamondIDdatabase = 1;
    buyerID = 1;
}

function set(uint diamondIDengravement) public {
    diamondIDengravement = _diamondIDdatabase
}

function get(uint) interface returns public {
    return diamondIDengravement;return diamondIDdatabase;return buyerID
}

}

Предполагается, что указанная ниже функция работает, но сама не могу найти решение:

function set(uint diamondIDengravement) public {
diamondIDengravement = _diamondIDdatabase
}

1 Ответ

0 голосов
/ 23 мая 2019

Это не ошибка.Это предупреждение.

Но это, вероятно, то, что вам нужно, примерно так:

function set(uint _diamondIDengravement) public {
    diamondIDengravement = _diamondIDengravement;
}

По сути, у вас уже есть переменная состояния с именем diamondIDengravement, поэтому называть ее плохой идеейпараметр функции с тем же именем.Вы можете использовать любое другое имя для параметра, но по соглашению, если вы просто хотите избежать конфликта имен, добавление подчеркивания перед ним - хороший способ показать, что вы делаете.

Но ваш кодимеет очень мало смысла, поэтому трудно сказать, что вы хотите сделать.(Я не уверен, что вы намеревались сделать set, поэтому я сделал предположение.)

...