Котлін при вираженні (з прикладами)

У цій статті ви дізнаєтесь про побудову в Котліні за допомогою різних прикладів.

Котлін при побудові

whenКонструкт в Котлин можна розглядати в якості заміни комутатора Заява Java. Він оцінює розділ коду серед багатьох варіантів.

Приклад: простий, коли вираз

 fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() val result = when (operator) ( "+" -> a + b "-" -> a - b "*" -> a * b "/" -> a / b else -> "$operator operator is invalid operator." ) println("result = $result") ) 

Коли ви запускаєте програму, результат буде приблизно таким:

 Введіть оператор +, -, * або / * результат = 60

Програма вище бере вхідний рядок від користувача (Рекомендоване читання: Отримати введення рядка від користувача в Kotlin). Припустимо, користувач увійшов *. У цьому випадку вираз a * bобчислюється, і значення присвоюється змінній result.

Якщо жодна з умов розгалуження не задоволені (користувач ввів нічого , крім +, -, *, або /), elseфілія оцінюється.

У наведеному вище прикладі ми використовували whenяк вираз. Однак це не обов’язково використовувати whenяк вираз. Наприклад,

 fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() when (operator) ( "+" -> println("$a + $b = $(a + b)") "-" -> println("$a - $b = $(a - b)") "*" -> println("$a * $b = $(a * b)") "/" -> println("$a / $b = $(a / b)") else -> println("$operator is invalid") ) )

Коли ви запускаєте програму, результат буде приблизно таким:

 Введіть оператор +, -, * або / - 12-5 = 7 

Тут whenне є виразом (повертане значення з whenнічого не присвоюється). У цьому випадку elseвідділення не є обов’язковим.

Мало можливостей

Поєднуйте дві або більше умови гілки з комою. Наприклад,

 fun main(args: Array) ( val n = -1 when (n) ( 1, 2, 3 -> println("n is a positive integer less than 4.") 0 -> println("n is zero") -1, -2 -> println("n is a negative integer greater than 3.") ) )

Коли ви запускаєте програму, результат буде:

 n - ціле від'ємне число, більше 3.

Перевірте значення в діапазоні. Наприклад,

 fun main(args: Array) ( val a = 100 when (a) ( in 1… 10 -> println("A positive number less than 11.") in 10… 100 -> println("A positive number between 10 and 100 (inclusive)") ) )

Коли ви запускаєте програму, результат буде:

 Позитивне число від 10 до 100 (включно)

Перевірте, чи є значення певного типу.

Щоб перевірити, чи є значення певного типу під час виконання, ми можемо використовувати оператор is і! Is. Наприклад,

 коли (x) (є Int -> print (x + 1) є String -> print (x.length + 1) is IntArray -> print (x.sum ())) 

Використовуйте вирази як умову гілки. Наприклад,

 fun main(args: Array) ( val a = 11 val n = "11" when (n) ( "cat" -> println("Cat? Really?") 12.toString() -> println("Close but not close enough.") a.toString() -> println("Bingo! It's eleven.") ) )

Коли ви запускаєте програму, результат буде:

Бінго! Зараз одинадцять.

Цікаві статті...