kotlin 中“in”的使用
2017-09-21 本文已影响46人
shenshizhong
文章目录
- 前言
- 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),集合
如果对你有一点点帮助,那是值得高兴的事情。:)
欢迎长按下图 -> 识别图中二维码 或者 扫一扫 关注我的公众号:
我的csdn:http://blog.csdn.net/shenshizhong
我的简书:http://www.jianshu.com/u/345daf0211ad