美文网首页kotlin 笔记
kotlin 中“in”的使用

kotlin 中“in”的使用

作者: shenshizhong | 来源:发表于2017-09-21 09:57 被阅读46次

    文章目录

    • 前言
    • 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

    相关文章

      网友评论

        本文标题:kotlin 中“in”的使用

        本文链接:https://www.haomeiwen.com/subject/amfasxtx.html