Cấu trúc
Thuộc phần Nền tảng cơ bản trong hành trình Solidity của Coddy. Bài học 43 trên 53.
Một struct nhóm các trường có liên quan dưới một tên kiểu tùy chỉnh. Mỗi trường có một kiểu và một tên, các trường có thể có kiểu khác nhau. Khai báo kiểu ở phạm vi hợp đồng, tạo một giá trị, rồi truy cập các trường bằng dấu chấm.
Khai báo ở phạm vi hợp đồng:
struct Parcel { uint256 weight; bool ready; }Dùng kiểu này bên trong hàm main đã cho:
Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);Kiểu Parcel có các trường weight và ready. Hàm khởi tạo theo vị trí cung cấp giá trị theo thứ tự khai báo. Đối tượng này tồn tại trong bộ nhớ trong lần gọi hiện tại; chỉ khai báo kiểu struct không tạo ra bản ghi được lưu trữ.
Dùng dấu chấm theo sau là tên trường để đọc hoặc thay đổi trường của struct.
Thử thách
DễKhai báo một struct có tên Badge với các trường uint256 level và bool active, theo thứ tự đó. Tạo một Badge trong bộ nhớ từ các đầu vào được cung cấp và in ra cả hai trường.
Các bài kiểm tra truyền đối số cho main theo thứ tự này: uint256 level, bool active. Mỗi bài kiểm tra bắt đầu với trạng thái hợp đồng mới.
Dùng console.log cho đầu ra được yêu cầu. Chỉ in các giá trị được yêu cầu, mỗi giá trị trên một dòng, không thêm nhãn trừ khi đề bài yêu cầu.
Tự làm thử
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 level, bool active) external view {
// Viết lời giải của bạn ở đây.
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
Tự luyện tập: Playground Solidity