我一生中从未做过任何编码,我从扎实开始。我正在学习一个关于智能合约的免费在线初学者课程,不知怎么的,我得到了这个错误:
contracts/simplestorage.sol:13:29:ParserError:需要主表达式。公众人物=({收藏夹编号:2,名称:"MB"}(;
用于以下代码行:
People public person = ({FavouriteNumber: 2, name: "MB"});
尽管这正是教程中显示的内容。请帮忙。
您还需要在表达式的右侧声明类型。
pragma solidity ^0.8;
contract MyContract {
struct People {
uint256 FavouriteNumber;
string name;
}
// see the `People` type on the right side
People public person = People({FavouriteNumber: 2, name: "MB"});
}
在这种情况下,它可能看起来像是重复。但它之所以存在,是因为某些类型可以转换为其他类型。所以你也可以这样做:
uint256 number = uint8(100); // small integer to large integer
bytes b = "hello"; // string literal to bytes array
// ... etc