mcpField
C
check-if-an-object-is-truthy-in-dart

check-if-an-object-is-truthy-in-dart

github.com/rodydavis開発6046 回インストール2 週間前に更新
リポジトリ

check-if-an-object-is-truthy-in-dart について

Dart の拡張とヘルパー関数で、null 許容オブジェクトに JavaScript 風の真偽値判定を加える方法を示すスキルです。条件式や代入で異なる型の値を扱う Dart 開発者向けです。

主な機能

  1. 01null 許容オブジェクトの拡張 getter
  2. 02真偽値判定用ヘルパー関数
  3. 03null、真偽値、数値への対応

活用シーン

  1. 01条件式で異なる型の値を判定
  2. 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)

デモ

コメント