Реляционный и логический паттерны

Последнее обновление: 13.05.2023

Реляционный паттерн

Реляционный паттерн позволяет сравнить передаваемое в конструкцию значение с некоторыми значениями с помощью операций сравнения. Паттерн позволяет использовать все стандартные операции сравнения: ==, !=, <, >, <=, и >=. Например, в зависимости от суммы вклада проценты по этому вкладу могут отличаться. Рассчитаем сумму процентов в зависимости от суммы вклада с использованием реляционного паттерна:

void main() {
    
    print(calculate(-200));     // 0
    print(calculate(0));        // 0 
    print(calculate(10000));    // 500
    print(calculate(60000));    // 6000
    print(calculate(200000));   // 40000
}

double calculate(int sum)
{
    return switch(sum) {
        <= 0 => 0,              // если sum меньше или равно 0, возвращаем 0
        < 50000 => sum * 0.05, // если sum меньше 50000, возвращаем sum * 0.05
        < 100000 => sum * 0.1, // если sum меньше 100000, возвращаем sum * 0.1
        _ => sum * 0.2           // в остальных случаях возвращаем sum * 0.2
    };
}

Логический паттерн

Логический паттерн позволяет использовать логический оператор && (логическое умножение или операция логического И) и оператор || (логическое сложение или операция логического ИЛИ) для объединения операций сравнения. Например, передадим в функцию возраст и возвратим соответствующее сообщение:

void main() {
    
    print(checkAge(200));     // Недействительный возраст
    print(checkAge(0));      // Недействительный возраст 
    print(checkAge(17));    // Доступ запрещен
    print(checkAge(18));   // Доступ разрешен
}

String checkAge(int age)
{
    return switch(age)
    {
        <1 || >110 => "Недействительный возраст",   // если age больше 110 и меньше 1
        >=1 && <18 => "Доступ запрещен",           // если age равно или больше 1 и меньше 18
        _ => "Доступ разрешен"                      // в остальных случаях
    };
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850