Menu
Coddy logo textTech

マッピング

CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 42/53。

マッピングは、ストレージ内でキーと値を関連付けます。コントラクトスコープで mapping(keyType => valueType) を宣言し、角括弧を使ってキーの読み取りや書き込みを行います。書き込まれていないキーは、valueType のデフォルト値を返します。たとえば、uint256 の場合はゼロです。

これをコントラクトスコープで宣言します:

mapping(uint256 => uint256) points;

提供されている main 関数内で使用します:

points[4] = 18;
console.log(points[4]);
console.log(points[5]);

この代入によって変更されるのはキー 4 だけです。キー 5 には一度も値が割り当てられていないため、ゼロとして読み取られます。マッピングには長さやキーの組み込みリストはありません。アプリケーションで反復処理が必要な場合は、キーを別途追跡してください。

書き込まれていないマッピングキーは、その値の型のデフォルト値として読み取られます。

challenge icon

チャレンジ

簡単

uint256キーからuint256値へのマッピングをscoresという名前で宣言します。キーplayerpointsを割り当て、その後scores[player]scores[player + 1]を出力します。

テストは次の順序で引数をmainに渡します:uint256 playeruint256 points。各テストは新しいコントラクト状態で開始されます。

指定された出力にはconsole.logを使用します。指定された値のみを、1行に1つずつ出力してください。タスクで指定されていない限り、追加のラベルは付けないでください。

自分で試してみよう

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 player, uint256 points) external  {
        // ここに解答を書いてください。
    }
}
quiz icon腕試し

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

基礎のすべてのレッスン

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