【Solidity】使用できるデータ型とbyteサイズ一覧

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型と同じということぐらいです。

忘れたら、私と同じようにこのページに戻ってきて確認してください。笑