Menu
Coddy logo textTech

構造体

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フィールドを読み取ったり変更したりするには、ドットに続けてフィールド名を使用します。

challenge icon

チャレンジ

簡単

uint256 levelbool active をこの順番で持つ、Badge という名前の構造体を宣言してください。与えられた入力からメモリ上の Badge を作成し、両方のフィールドを出力してください。

テストは次の順番で main に引数を渡します:uint256 levelbool 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 {
        // ここに解答を書いてください。
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Solidityプレイグラウンド