kotlin 中“in”的使用

文章目录

● 前言
● in 介绍
● in 使用
● 总结

前言

for(i in 0..100),在 前面的 for 循环文章中我们有提到过 in。除了在 for 循环中用到它,还有哪些地方会用到呢,又是怎么用的呢,下面就主要来介绍下它

in 介绍

● in 中文意思就是在…之内,它是一个运算符。(在 kotlin 的语法中,也是非常符合它的语意的,和区间组合在一起,主要表示在..区间。’c’ in ‘a’..’z’,它是区间表达式,是一个判断的语句,输出的是一个 boolean。意思是 c 字符是否在字符 a 到 字符 b 的区间内)
● 再举例子 1 in 0.. 100, 表示 1是不是0到100区间,放到输出语句中,很显然会输出true
● !in 表示不在..区间。也是运算符,正好和 in 相反。(也容易理解!表示取反)
可以直接复制下面代码,验证一下

fun main(args: Array<String>){
    println('c' in 'a'..'d');
    println(1 in 0..100)
}

in 使用

● 用于检查字符区间成员
● 用于检查对象(这个实例对象的类必须实现了 java.lang.Comparable),比如字符串,因为String 实现了 Comparable
● 用于检查集合
1、检查字符区间

fun isLetter(c: Char) = c in 'a'..'z'
fun isNotDigit(c: Char) = c !in '0'..'9' //不在这个0到9区间

fun main(args: Array<String>) {
    println(isLetter('c'))
    println(isNotDigit('c'))
}

2、可以使用 when 来写,检查字符区间

fun recognize(c: Char) = when(c){
    in '0'..'9' -> "It is a digit!"
    in 'a'..'z', in 'A'..'Z' -> "It's a letter!"
    else -> "I don't know..."
}

fun main(args: Array<String>) {
    println(recognize('d'))
}

3、检查字符串区间

fun main(args: Array<String>) {
    println('a'<'c') //比较大小,可以忽略不看
    println("kotlin" in "java".."scala")   // 是否在"java""scala"字符串区间 ,相当于"java"<="kotlin"&& "kotlin" <= "scala"

}

4,检查集合

fun main(args: Array<String>) {
    println("kotlin" in setOf<String>("java","scala"))  //kotlin 是否在集合中
}

总结

● i in a..b 表示 i 是否在 a 到 b 区间
● in 可以检查字符区间,对象区间(实例对象的类必须实现Comparable),集合

如果对你有一点点帮助,那是值得高兴的事情。:)
欢迎长按下图 -> 识别图中二维码 或者 扫一扫 关注我的公众号:
shenshizhong.png

我的csdn:http://blog.csdn.net/shenshizhong
我的简书:http://www.jianshu.com/u/345daf0211ad

猜你喜欢

转载自blog.csdn.net/shenshizhong/article/details/78048567