👌
Solidity基礎学習1日目(Boolean型, Uint型)
Claud Codeなどを利用すると、かなりの部分のスマートコントラクトを実装できますが、それだけでは不安なので、Solidityを基礎から網羅的に学習していきます。平日は仕事をしているので進捗はゆっくりとなるかもしれません。
Solidity基礎学習 - Boolean型とUint型
日付: 2025年8月14日
学習内容: Solidityの基本的なデータ型について
1. Boolean型の学習
Boolean.solの概要
Boolean型は、Solidityにおける最もシンプルなデータ型の一つで、trueまたはfalseの値のみを取ります。
重要なポイント
初期値
bool public myBool; // 初期値はfalse(0)
- Boolean型の変数は、明示的に初期化しない場合、デフォルトで
false(0)が設定されます
論理演算子
function setMyBool(bool _myBool) public {
myBool = _myBool; // 直接代入
myBool = !_myBool; // 論理否定(NOT)
myBool = true && _myBool; // 論理積(AND)
myBool = true || _myBool; // 論理和(OR)
myBool = true == _myBool; // 等価比較
myBool = true != _myBool; // 不等価比較
}
論理演算子の種類:
-
!: 論理否定(NOT) -
&&: 論理積(AND) -
||: 論理和(OR) -
==: 等価比較 -
!=: 不等価比較
2. Uint型の学習
ExampleUint.solの概要
Uint型は、符号なし整数を扱うデータ型で、様々なビットサイズが用意されています。
重要なポイント
基本的なUint型
uint public myUint; // uintはuint256のエイリアス
uint256 public myUint256; // 0 ~ (2^256) - 1
uint8 public myUint8 = 250; // 0 ~ (2^8) - 1 = 0 ~ 255
符号付き整数型
int public myint = -10; // intはint256のエイリアス
int256 public myint256; // -2^255 ~ +2^255 - 1
ガスコストの最適化
uint8 public myUint8 = 250; // ガスコストを節約するには小さいものを選ぶこと
- 小さいビットサイズの型を使用することで、ガスコストを節約できます
- 必要最小限のビットサイズを選択することが重要です
インクリメント・デクリメント操作
function decrementUint8() public {
myUint8--; // デクリメント
}
function incrementUint8() public {
myUint8++; // インクリメント
}
3. 学習のポイント
データ型の選択
- Boolean型: 真偽値が必要な場合に使用
- Uint型: 正の整数が必要な場合に使用
- Int型: 負の値も扱う必要がある場合に使用
ガスコストの考慮
- 必要最小限のビットサイズを選択する
- 大きな数値を扱う必要がない場合は、
uint8やuint16などの小さい型を使用する
初期値の理解
- Boolean型: デフォルトで
false - Uint型: デフォルトで
0 - 明示的な初期化が推奨される
4. 今後の学習に向けて
これらの基本的なデータ型を理解することで、より複雑なスマートコントラクトの作成に進むことができます。次は、整数のラップアラウンド、文字列型、配列、マッピング、構造体などの複合データ型について学習していきましょう。
重要な概念:
- 整数のオーバーフロー/アンダーフロー処理
- データの場所の適切な指定
- 効率的な文字列処理
- ガスコストの最適化
参考:
Discussion