スマートコントラクト開発時、mappingにデータが登録されているかどうかを判定する際に詰まりました。
その原因と解決策について解説していきます。
Contents
問題
Solidityではnullの概念がないため、if (userBalance[msg.sender] == null)的なことをやろうとしてもできない。
解決方法
Solidityではnullの代わりに変数の初期値が返されるため、この特性を利用してnullチェックを行うのが正解みたいです。
各型ごとの変数の初期値
| uint | 0 |
|---|---|
| string | “” |
| address | 0x0 |
| bytes | 0x |