- Kotlin for Enterprise Applications using Java EE
- Raghavendra Rao K
- 206字
- 2021-06-10 18:49:21
When clause
when is a pattern matching clause in Kotlin. This helps us to write elegant code when dealing with pattern matching, meaning we can avoid using a lot of if else statements.
Let's write a function that takes an input, the type of which is not known. Any is used to indicate this and a when block is used to handle different patterns.
Consider the code for 10_when.kts:
fun processInput(input: Any) {
when(input) {
10 -> println("It is 10")
98,99 -> println("It is 98 or 99")
in 101 .. 120 -> println("More than 100")
is String -> println("This is ${input} of length ${input.length}")
else -> println("Not known")
}
}
processInput(10)
processInput(98)
processInput(99)
processInput(102)
processInput("hey there")
processInput(Thread())
The output is as follows:
Alongside the pattern matching, we can also perform type checking using the when block:
is String -> println("This is ${input} of length ${input.length}")
Note that the argument input is of the Any type. After type checking, the input is automatically cast to String, and we can use the length property, which is defined in the String class. The Kotlin language does the auto-typecasting for us, so we don't have to do any explicit type casting.
- 黑客攻防從入門到精通(實(shí)戰(zhàn)秘笈版)
- Facebook Application Development with Graph API Cookbook
- C程序設(shè)計(jì)簡明教程(第二版)
- Python科學(xué)計(jì)算(第2版)
- 新一代通用視頻編碼H.266/VVC:原理、標(biāo)準(zhǔn)與實(shí)現(xiàn)
- C語言程序設(shè)計(jì)實(shí)訓(xùn)教程
- 精通Linux(第2版)
- .NET 3.5編程
- Android嵌入式系統(tǒng)程序開發(fā):基于Cortex-A8(第2版)
- C陷阱與缺陷
- R的極客理想:量化投資篇
- Java EE架構(gòu)設(shè)計(jì)與開發(fā)實(shí)踐
- Implementing Microsoft Dynamics NAV(Third Edition)
- UI動效設(shè)計(jì)從入門到精通
- Web前端測試與集成:Jasmine/Selenium/Protractor/Jenkins的最佳實(shí)踐