kotlin中特殊类Any,特殊关键字is,when的用法
本小节主要讲解kotlin与Java中不同并且特殊类Any,特殊关键字is,when的用法
一、特殊的类
1、Any类
示例:
var a: Any
Any 类在kotlin中的描述
The root of the Kotlin class hierarchy. Every Kotlin class has [Any] as a superclass.
Any类型 : 表示任意类型。
相当于Java中的 Object,但是Any和Java中的Object又不是一回事,毕竟是两种语言
二、特殊关键字
1、is 关键字
/**
* 将字符串转换为大写
*/
fun strToUpperCase(str: Any): String? {
/**
* TODO : 判断 str 是不是字符串
* is 相当于Java中的 instanceof 关键字
*/
if (str is String) {
return str.toUpperCase()
}
return null
}
is 关键字就省去Java中比较繁琐的比较
2、when关键字的使用
1、kotlin中的when 关键字相当于 Java语言中的 switch --- case
/**
* @when 关键字
* 相当于 switch-case
*/
fun strConversion(str: String): String {
when (str) {
// TODO : 如果字符串为 "hello" 那么久返回 "HELLO"
"hello" -> return "HELLO"
// TODO : 如果字符串为 "world" 那么久返回 "WORLD"
"world" -> return "WORLD"
// TODO : 如果字符串为 "hello world" 那么久返回 "HELLO WORLD"
"hello world" -> return "HELLO WORLD"
// TODO : 其他情况
else -> return "other input"
}
}
以上代码可以进行简化
// 函数式简化
fun strConversion3(str: String) =
when (str) {
// TODO : 如果字符串为 "hello" 那么久返回 "HELLO"
"hello" -> "HELLO"
// TODO : 如果字符串为 "world" 那么久返回 "WORLD"
"world" -> "WORLD"
// TODO : 如果字符串为 "hello world" 那么久返回 "HELLO WORLD"
"hello world" -> "HELLO WORLD"
// TODO : 其他情况
else -> "other input"
}
2、when关键字的高级用法
/**
* @when : when关键字
*/
fun main() {
println("----------------- when 关键字的使用 ---------------------------")
val a = 6
var result = when (a) {
// TODO: 如果 a == 1
1 -> {
println("a = 1")
10
}
// TODO: 如果 a == 2
2 -> {
println(" a = 2")
20
}
// TODO: 如果 a == 3 or 4 or 5
3, 4, 5 -> {
println("3 or 4 or 5")
30
}
// TODO: 如果 a在区间 6到10之间
in 6..10 -> {
println("a is between 6 and 10")
40
}
// TODO : 使用when 时候必须遍历完所有的可能
else -> {
println("a is other value")
null
}
}
println(result)
}
通过使用when 关键字,在逻辑判断时候,巧妙地使用可以发挥很大的作用,为简化代码的书写起到很大的作用。
网友评论