如何解决声明错误:未找到标识符或标识符不唯一映射uint => product公共产品;
// SPDX-License-Identifier: MIT
pragma solidity ^0.5.16;
// creating the contract
contract rating {
// creating structure to model the product
struct Product {
uint id;
string name;
uint ratingCount;
}
// use mapping to get or fetch the contestant details
mapping(uint => product) public products;
// add a public state variable to keep track of product count
uint public productsCount;
constructor () public {
addProduct("Nike");
addProduct("Adidas");
}
// add a function to add product
// for private variable we use underscore in the start of variable _name
function addProduct(string memory _name) private {
productsCount++;
products[productsCount] = Product(productsCount,_name,0);
}
}
解决方法
Solidity 区分大小写。
您已经定义了一个名为 Product
(大写 P)的结构,但您的映射使用的是 product
(小写 p)。
解决方案:使用正确的形式Product
mapping(uint => Product) public products;
,
抱歉,我发现问题出在映射中
mapping(uint => product) public products;
我错误地使用了小 p 而不是大写 P。这在迁移我的智能合约时给了我一个错误,因为我的结构名称以大写 P(产品)开头。 所以不是小 p 只是将 p 更改为 P。
mapping(uint => Product) public products;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。