String.Первое расширение позволит нам ускорить проверку на пустую строку.
extension NullableStringX on String? {
bool get isNullOrBlank => this == null || this.trim().isEmpty();
}
Пример:
final String? s = null;
s.isNullOrBlank; // true
' '.isNullOrBlank // true
'test'.isNullOrBlank // false
Второе позволяет сделать первую букву строки заглавной, а также сделать это для предложений.
extension StringX on String {
String capitalize() => this.trim().isEmpty ? this : '${this.trim()[0].toUpperCase()}${this.trim().substring(1).toLowerCase()}';
String capitalizeSentense() => this.split('.').map((e) => e.capitalize()).join('. ').trim();
}
Пример:
'мое ПрЕдЛоЖеНиЕ РАЗНОГО размера'.capitalize() // Мое предложение разного размера
'три. слова. точка.'.capitalizeSentense() // Три. Слова. Точка.
Еще одно позволяет скопировать в Clipboard для дальнейшей вставки вместо дополнительного создания объектов в коде.
extension StringX on String {
void copyToClipboard() => Clipboard.setData(ClipboardData(text: this));
}
В следующий раз мы разберемся с расширениями, которые помогут нам с валидацией данных и конвертацией.
Рассказывайте в комментариях, используете ли вы extensions на проектах?
