【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 配列の値をセットする手順
- set_number関数を呼び出し、配列の特定のインデックスに値を格納
- get_number関数で値を取得し、正しく格納されているか確認
3.2 マッピングにデータを追加する手順
- set_balance関数を使って特定のアドレスに残高を設定
- get_balance関数でそのアドレスの残高を取得し、データが正しく格納されているか検証
4. 練習問題
4.1 練習問題
以下の課題に挑戦してください。
- 新しいデータ型を使った配列を作成する
- 複数の値を一度に更新できるマッピングを作成する
5. まとめ
本記事では、Vyperの配列とマッピングについて学びました。これらのデータ構造を適切に活用し、スマートコントラクトの効率を向上させましょう。