😁
Dart quiverパッケージが便利 strings編
結論
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
参考
Discussion