【CryptZombies】レッスン2チャプター2:マッピング(Mapping)とアドレス(Address)
アドレス
イーサリアムのブロックチェーンは銀行口座と同じようにアカウント(口座)で構成されています。
このアカウント(口座)には、Ether(イーサ)の残高が記録されていて、Etherを送金したり受け取ったり、別のアカウントに支払うこともできます。
銀行口座から送金するのとまったく同じ。
それぞれのアカウントにはアドレス(口座番号)があります。
これはアカウントのためのユニークな識別番号になっていて、次のような番号で表示されます。
0x0cE446255506E92DF41614C46F1d6df9Cc969183
アドレスは、特定のユーザー(またはスマートコントラクトで)が所有するものです。
つまり、この数字をゾンビの番号として使用することができるのです。
マッピング
マッピング(Mappings)は、構造体(struct)や配列(array)と同じで、データを格納するときにSolidityで使える方法の一つです。
次のように定義します。
// 金融系のアプリの場合、ユーザーのアカウントの残高にuintを格納する:
mapping (address => uint) public accountBalance;
// もしくは、ユーザーIdを基にユーザー名を参照・格納するために使用するぞ:
mapping (uint => string) userIdToName;m
マッピングは、本質的にはデータの保管と参照のためのキーバリューストアです。
上の例でいえば、キーはaddressで、バリューはuintです。
2番目の例だど、キーはuintで、バリューはstringです。
※キーバリューストアとは、キーとバリュー(値)の組を書き込み、キーを指定することで値を読み出せるデータベース管理のことです。
テストの実行
①zombieToOwnerという名前のマッピングを作成せよ。キーはuintとし(idを基にゾンビを参照・保管するぞ)、バリューはaddressとする。マッピングはpublicで作成せよ。
②ownerZombieCountという名前のマッピングを作成し、キーはaddress、バリューはuintを設定せよ。
お疲れさまでした!
<参考>
CryptoZombies - イーサリアム上でゲームを開発する方法を学習。Powered by Loom Network