【Solidity】mapping key が存在しない場合を判定する

Ethereum×Solidity

スマートコントラクト開発時、mappingにデータが登録されているかどうかを判定する際に詰まりました。
その原因と解決策について解説していきます。

問題

Solidityではnullの概念がないため、if (userBalance[msg.sender] == null)的なことをやろうとしてもできない。

解決方法

Solidityではnullの代わりに変数の初期値が返されるため、この特性を利用してnullチェックを行うのが正解みたいです。

各型ごとの変数の初期値

uint 0
string “”
address 0x0
bytes 0x

参考文献

Scroll to top