check-if-an-object-is-truthy-in-dart について
Dart の拡張とヘルパー関数で、null 許容オブジェクトに JavaScript 風の真偽値判定を加える方法を示すスキルです。条件式や代入で異なる型の値を扱う Dart 開発者向けです。
主な機能
- 01null 許容オブジェクトの拡張 getter
- 02真偽値判定用ヘルパー関数
- 03null、真偽値、数値への対応
活用シーン
- 01条件式で異なる型の値を判定
- 02null 許容値から真偽値を代入
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rodydavis/ skills --skill check-if-an-object-is-truthy-in-dartインストール後、Claude Code で/check-if-an-object-is-truthy-in-dartを入力して読み込まれたか確認します。
詳細
Dartでオブジェクトがtruthyかどうかを確認する
JavaScriptなどの言語を使っている場合、オブジェクトがtruthyかどうかを確認する方法に慣れているかもしれません。
if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
Dartでは、オブジェクトがnullでないことを明示的に確認するか、true/falseかどうかを確認するか、型に基づいて値がtrueかどうかを判断する必要があります。
ただし、Dartの拡張機能を使ってtruthy機能を追加できます。
extension on Object? {
bool get isTruthy => truthy(this);
}
bool truthy(Object? val) {
if (val == null) return false;
if (val is bool) return val;
if (val is num && val == 0) return false;
if (val is String && (val == 'false' || val == '')) return false;
if (val is Iterable && val.isEmpty) return false;
if (val is Map && val.isEmpty) return false;
return true;
}
これにより、if文や値の代入で、任意のオブジェクトをtruthy値として評価できるようになります。
次のように出力されます。
(null, false)
(, false)
(false, false)
(true, true)
(0, false)
(1, true)
(false, false)
(true, true)
([], false)
([1, 2, 3], true)
({}, false)
({1, 2, 3}, true)
({a: 1, b: 2}, true)
デモ
コメント
Markdown 対応