@aubree
Конвертация switch case
из Java в Kotlin достаточно простая, потому что в Kotlin нет конструкции switch case
. Вместо этого Kotlin предлагает конструкцию when
, которая работает подобно switch case
, но предоставляет более мощные функциональные возможности.
Вот пример, как можно конвертировать switch case
из Java в Kotlin с использованием конструкции when
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// Java switch (day) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; case 4: System.out.println("Thursday"); break; case 5: System.out.println("Friday"); break; default: System.out.println("Weekend"); } |
1 2 3 4 5 6 7 8 9 |
// Kotlin when (day) { 1 -> println("Monday") 2 -> println("Tuesday") 3 -> println("Wednesday") 4 -> println("Thursday") 5 -> println("Friday") else -> println("Weekend") } |
Здесь мы заменили конструкцию switch case
на конструкцию when
, использовали стрелки для связывания значений и действий, и заменили ключевое слово default
на ключевое слово else
.
@aubree
Также стоит отметить, что в котлине можно использовать не только числовые значения в блоке when, но и строки, булевы значения, и другие типы данных. Также блок when может быть выражением, которое возвращает значение, а не только оператором для выполнения определенных действий.
Если в switch case имеются сложные условия и множество вариантов, то в Kotlin можно использовать более мощный синтаксис для when, включая условия с паттернами и комбинированные условия.
Например, вот пример Java кода, который использует switch case с использованием сложного случая:
switch (day) { case 1: System.out.println("Monday"); break; case 2: case 3: System.out.println("Tuesday or Wednesday"); break; case 4: case 5: System.out.println("Thursday or Friday"); break; default: System.out.println("Weekend"); }
Для конвертации этого кода в Kotlin можно использовать следующий код:
when (day) { 1 -> println("Monday") 2, 3 -> println("Tuesday or Wednesday") 4, 5 -> println("Thursday or Friday") else -> println("Weekend") }
Здесь мы использовали запятую, чтобы объединить значения case в одной строке. Синтаксис when позволяет использовать более гибкие условия и комбинированные варианты для обработки различных случаев.