Solidityは静的型付け言語であり、変数を定義する際にそのデータ型を明示的に記述する必要があります。
また、Solidityのコントラクト内のステート変数は32bytesごとにストレージスロットに格納されていくため、データ型のbyteサイズを気にしておく必要があります。

特にstructを作成する際はガス代の節約に大きく関わってきます。
なので、一旦Solidityで使用できるデータ型とそれぞれのbyte数を一覧として残しておこうと思います。
目次
データ型とbyteサイズ一覧
Solidityで使用できるデータ型とbyteサイズの一覧は以下のとおりです。
データ型 | byteサイズ |
---|---|
bool | 1 |
bytes1 | 1 |
bytes8 | 8 |
bytes16 | 16 |
bytes32 | 32 |
address | 20 |
contract | 20 |
uint8/int8 | 1 |
uint16/int16 | 2 |
uint32/int32 | 4 |
uint64/int64 | 8 |
uint128/int128 | 16 |
uint256/int256 | 32 |
string | 格納されるデータ量によって変化 |
個人的には、uint関連のbyteサイズをよく忘れてしまうので、これを機にちゃんと覚えておこうと思います。



毎度ググるのが面倒なので、、、
あと、ポイントとしてはcontractのデータ型が20bytesでaddress型と同じということぐらいです。
忘れたら、私と同じようにこのページに戻ってきて確認してください。笑
コメント