構造体
CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 43/53。
struct は、関連するフィールドをカスタム型名の下にまとめます。各フィールドには型と名前があり、フィールドごとに異なる型を指定できます。コントラクトスコープで型を宣言し、値を作成してから、ドットを使ってそのフィールドにアクセスします。
これをコントラクトスコープで宣言します:
struct Parcel { uint256 weight; bool ready; }提供されている main 関数内で使用します:
Parcel memory item = Parcel(11, true);
console.log(item.weight);
console.log(item.ready);Parcel型には、weightフィールドとreadyフィールドがあります。位置指定コンストラクターは、宣言順に値を提供します。このアイテムは現在の呼び出しの間メモリ上に存在します。struct型を宣言しただけでは、保存されたレコードは作成されません。
structフィールドを読み取ったり変更したりするには、ドットに続けてフィールド名を使用します。
チャレンジ
簡単uint256 level と bool active をこの順番で持つ、Badge という名前の構造体を宣言してください。与えられた入力からメモリ上の Badge を作成し、両方のフィールドを出力してください。
テストは次の順番で main に引数を渡します:uint256 level、bool active。各テストは新しいコントラクト状態から開始します。
指定された出力には console.log を使用してください。指定された値だけを、1 行に 1 つずつ出力してください。タスクで指定されていない限り、追加のラベルは付けないでください。
自分で試してみよう
// 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プレイグラウンド