Как конвертировать switch case из java в kotlin?

Пользователь

от aubree , в категории: Другие , 2 года назад

Как конвертировать switch case из java в kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brooklyn , 2 года назад

@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.

Пользователь

от ransom_homenick , год назад

@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 позволяет использовать более гибкие условия и комбинированные варианты для обработки различных случаев.