概要

mappingの能力を最大限に引き出す、Solidityの「構造体 (struct)」を徹底解説します。ユーザーID・名前・残高といった複数の関連データを、あなただけのオリジナルなデータ型にまとめる方法を学習。
mapping(address => User)という王道パターンを使い、複雑な情報を整理整頓し、本格的なDAppのデータ層を設計するスキルが身につきます。
-
-
Solidity学習講座:最終版 目次(全20話)
基礎編 第1話:未来のインターネットへようこそ!Solidityとスマートコントラクトの全体像 第2話:準備は1分!ブラウザだけで開発できる「Remix IDE」の基本操作 第3話:記念すべき初コント ...
続きを見る
はじめに
第7話で、あなたはmapping
という魔法の杖を手に入れました。mapping(address => uint)
という一行で、無数のユーザーの残高を管理できるようになったのです。これは大きな進歩でしたね。
しかし、すぐに新たな課題が見えてきます。もし、あなたがユーザー管理システムを作りたいとして、ユーザーごとに以下の情報を保存したい場合はどうすればよいでしょうか?
- ユーザーID(
uint
) - ユーザー名(
string
) - 会員ステータス(
bool
) - ポイント残高(
uint
)
もちろん、mapping(address => uint) userIds;
、mapping(address => string) userNames;
... というように、情報の種類ごとにマッピングを増やすことも可能です。しかし、このアプローチは煩雑で、管理が大変になり、コードの見通しも悪くなってしまいます。
この課題をエレガントに解決するのが、今回学ぶ**struct
(構造体)**です。
struct
は、関連する複数のデータを一つのグループにまとめ、あなただけのオリジナルなデータ型を作成するための機能です。これをmapping
と組み合わせることで、あなたのスマートコントラクトのデータ管理能力は飛躍的に向上し、プロフェッショナルな設計への扉が開かれます。