我正在编写一些代码来设计智能合约。但每次我说“警告:此声明隐藏了现有声明”时,我都会不断收到相同的错误。由于我是 Solidity 语言的新手,所以我还没有找到可能的解决方案:
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
}
Run Code Online (Sandbox Code Playgroud)
}
下面所述的功能应该可以工作,但我自己找不到解决方案:
function set(uint diamondIDengravement) public {
diamondIDengravement = _diamondIDdatabase
}
Run Code Online (Sandbox Code Playgroud)
这不是一个错误。这是一个警告。
但你可能想要这样的东西:
function set(uint _diamondIDengravement) public {
diamondIDengravement = _diamondIDengravement;
}
Run Code Online (Sandbox Code Playgroud)
基本上,您已经有一个名为 的状态变量diamondIDengravement,因此用相同的名称命名函数参数是一个坏主意。您可以为参数使用任何其他名称,但按照惯例,如果您只是想避免名称冲突,则在前面添加下划线是表明您正在执行的操作的好方法。
但你的代码没有什么意义,所以很难说出你想做什么。(我不确定你想做什么set,所以我猜测一下。)
| 归档时间: |
|
| 查看次数: |
10114 次 |
| 最近记录: |