😁

Dart quiverパッケージが便利 strings編

2020/10/21に公開

結論

quiverパッケージを使うことで、DartにはないisBlankやisNotBlankが使えて便利です。
quiverパッケージには他にも様々な便利な機能を提供しているのでおすすめです。(使いこなしたら別記事で紹介したいと思います)

実際に使ってみた

今回は下記を実際に使ってみました

isBlank checks if a string is null, empty or made of whitespace characters.
isNotBlank checks if a string is not null, and not blank.
isEmpty checks if a string is null or empty.
isNotEmpty checks if a string is not null and not empty.

nullでもエラーにならないのとblankの判定もちゃんとできていました。(中で渡された文字列をtrimしてisEmptyしているだけですが、コードが短くなって良いと思います)

サンプルコード(無駄なコード書いてたので修正しました)

import 'package:quiver/strings.dart';

void main() {
  String nullStr = null;
  String emptyStr = '';
  String blankStr = ' ';
  String str = 'a';

  // String.isEmptyの動作確認
  // print('null String.isEmpty : ${nullStr.isEmpty}'); // エラーになる
  print('empty String.isEmpty : ${emptyStr.isEmpty}');
  print('blank String.isEmpty : ${blankStr.isEmpty}');
  print('str String.isEmpty : ${str.isEmpty}');

  // String.isNotEmptyの動作確認
  // print('null String.isEmpty : ${nullStr.isNotEmpty}'); // エラーになる
  print('empty String.isNotEmpty : ${emptyStr.isNotEmpty}');
  print('blank String.isNotEmpty : ${blankStr.isNotEmpty}');
  print('str String.isNotEmpty : ${str.isNotEmpty}');

  // quiiver.stringsの動作確認
  // isBlank
  print('null isBlank : ${isBlank(nullStr)}');
  print('empty isBlank : ${isBlank(emptyStr)}');
  print('blank isBlank : ${isBlank(blankStr)}');
  print('str isBlank : ${isBlank(str)}');

  // isNotBlank
  print('null isNotBlank : ${isNotBlank(nullStr)}');
  print('empty isNotBlank : ${isNotBlank(emptyStr)}');
  print('blank isNotBlank : ${isNotBlank(blankStr)}');
  print('str isNotBlank : ${isNotBlank(str)}');

  // isEmpty
  print('null isEmpty : ${isEmpty(nullStr)}');
  print('empty isEmpty : ${isEmpty(emptyStr)}');
  print('blank isEmpty : ${isEmpty(blankStr)}');
  print('str isEmpty : ${isEmpty(str)}');

  // isEmpty
  print('null isNotEmpty : ${isNotEmpty(nullStr)}');
  print('empty isNotEmpty : ${isNotEmpty(emptyStr)}');
  print('blank isNotEmpty : ${isNotEmpty(blankStr)}');
  print('str isNotEmpty : ${isNotEmpty(str)}');
}

実行結果(見やすいように改行を一部加えています)

flutter: empty String.isEmpty : true
flutter: blank String.isEmpty : false
flutter: str String.isEmpty : false

flutter: empty String.isNotEmpty : false
flutter: blank String.isNotEmpty : true
flutter: str String.isNotEmpty : true

flutter: null isBlank : true
flutter: empty isBlank : true
flutter: blank isBlank : true
flutter: str isBlank : false

flutter: null isNotBlank : false
flutter: empty isNotBlank : false
flutter: blank isNotBlank : false
flutter: str isNotBlank : true

flutter: null isEmpty : true
flutter: empty isEmpty : true
flutter: blank isEmpty : false
flutter: str isEmpty : false

flutter: null isNotEmpty : false
flutter: empty isNotEmpty : false
flutter: blank isNotEmpty : true
flutter: str isNotEmpty : true

参考

https://pub.dev/packages/quiver

Discussion