Vyper

【Vyper】第1章第4回:配列とマッピング:データ構造の基本と操作方法

本記事では、Vyperのデータ構造である配列とマッピングについて詳しく解説します。これらのデータ構造を適切に活用することで、スマートコントラクトの柔軟性と効率を向上させることができます。

0. 記事の概要

この記事を読むメリット

  • Vyperの配列とマッピングの基本を理解できる
  • 実際にコードを書きながらデータ構造を学べる
  • 適切なデータ構造の選び方を習得できる

1. 配列(Array)の基本

Vyperでは、固定長の配列を使用してデータを格納できます。

1.1 配列の定義


        # 配列の宣言
        numbers: public(int128[5])

        @public
        def set_number(index: int128, value: int128):
            self.numbers[index] = value
        

1.2 配列の読み取り


        @public
        def get_number(index: int128) -> int128:
            return self.numbers[index]
        

2. マッピング(Mapping)の基本

マッピングを使用すると、キーと値のペアを管理できます。

2.1 マッピングの定義


        # マッピングの宣言
        balances: public(map(address, int128))

        @public
        def set_balance(addr: address, amount: int128):
            self.balances[addr] = amount
        

2.2 マッピングの利用


        @public
        def get_balance(addr: address) -> int128:
            return self.balances[addr]
        

3. ステップバイステップの動作解説

3.1 配列の値をセットする手順

  1. set_number関数を呼び出し、配列の特定のインデックスに値を格納
  2. get_number関数で値を取得し、正しく格納されているか確認

3.2 マッピングにデータを追加する手順

  1. set_balance関数を使って特定のアドレスに残高を設定
  2. get_balance関数でそのアドレスの残高を取得し、データが正しく格納されているか検証

4. 練習問題

4.1 練習問題

以下の課題に挑戦してください。

  • 新しいデータ型を使った配列を作成する
  • 複数の値を一度に更新できるマッピングを作成する

5. まとめ

本記事では、Vyperの配列とマッピングについて学びました。これらのデータ構造を適切に活用し、スマートコントラクトの効率を向上させましょう。