Паттерн _
Паттерн _ (одиночное подчеркивание) является подстановочным знаком в Dart. Он используется в контексте сопоставления с образцом (pattern matching) и деструктуризации для обозначения того, что значение должно быть проигнорировано. В отличие от обычных переменных, _ не связывает значение с именем, а просто пропускает его. Этот паттерн можно использовать в операторах switch, в конструкциях if-case, при деструктуризации записей (records), списков, объектов, а также в параметрах функций для игнорирования аргументов.
Синтаксис
_
Пример
Давайте используем паттерн _ в операторе switch, чтобы игнорировать значение:
void main()
{
var value = 5;
switch (value)
{
case 1:
print('one');
case _:
print('other');
}
}
Результат выполнения кода:
"other"
Пример
Давайте применим паттерн _ для деструктуризации записи (record), игнорируя второе значение:
void main()
{
var record = (1, 'abcde', 3);
var (first, _, third) = record;
print(first);
print(third);
}
Результат выполнения кода:
1
3
Пример
Давайте используем _ в списке для игнорирования второго элемента:
void main()
{
var list = [1, 2, 3, 4, 5];
var [first, _, third, ...] = list;
print(first);
print(third);
}
Результат выполнения кода:
1
3
Пример
Давайте применим _ в параметрах функции, чтобы проигнорировать ненужный аргумент:
void greet(String name, _)
{
print('Hello, $name!');
}
void main()
{
greet('User', 12345);
}
Результат выполнения кода:
"Hello, User!"