结构体
本课属于 Coddy Solidity 学习旅程的“基础知识”单元。第 43 课,共 53 课。
结构体会将相关字段归在一个自定义类型名下。每个字段都有类型和名称,字段的类型可以不同。在合约作用域中声明类型,创建一个值,然后用点号访问它的字段。
在合约作用域中声明:
struct Parcel { uint256 weight; bool ready; }在提供的 main 函数中使用它:
Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);Parcel 类型有 weight 和 ready 字段。位置参数构造函数按声明顺序提供值。这个项目在当前调用期间存在于内存中;仅声明结构体类型不会创建已存储的记录。
使用点号后接字段名来读取或修改结构体字段。
挑战
简单声明一个名为 Badge 的结构体,其中依次包含 uint256 level 和 bool active。根据提供的输入创建一个 memory Badge,并打印两个字段。
测试会按以下顺序向 main 传递参数:uint256 level、bool active。每项测试都会从全新的合约状态开始。
使用 console.log 输出要求的内容。只打印要求的值,每行一个;除非任务另有说明,否则不要添加额外标签。
亲手试试
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 level, bool active) external view {
// 在这里写下你的答案。
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Solidity 在线编辑器