kotlin 操作符集合

作者: 橘子周二 | 来源:发表于2017-12-11 18:04 被阅读43次
图片来自百度

最近开始了kotlin的学习,刚开始没两天我就发现在各种与语句中需要给变量加很多符号修饰。对这些符号知之甚少,所以立马停了下来,翻老司机博客仔细学习了一遍。在学习理解操作符的时候,之前遇到的问题也是引刃而解。个别操作符还理解不够深,毕竟用得还不够多。本篇记录学习时的分析细节和例子,便于之后继续加深学习时快速理清思路。

1 ? 操作符 允许一个变量或返回值为null

        //不使用?操作符 修饰则一定不能为空  var name:String = null 报错
        var str: String? = null

2 ?: 操作符 指定变量在非空时才执行操作,否则用某个非空值 X 代替。类似于 java 的,非空校验

        //原始写法
        val ii:Int = if(null != str) str.length else -1

        //使用?:  (Elvis 表达式-这名字真陌生)
        val ii2:Int = str?.length ?: -1

3 !!操作符 如果str 为空就抛出 NPE 在kotlin NPE都要显示的表现出来,否则要么就没结果,要么 - - 就编译错误。

 val ii3:Int = str!!.length

4 表达式 =====

        print("== and ===")
        var p: Long = 1222111
        var a: Long = p
        var b: Long = p

        print(a == b)
        print(a === b)
        //log:true  true

        var c: Long? = p
        var d: Long? = p

        print(c == d)
        print(c === d)
        //log:true  false

        var e: Long? = p
        var f: Long = p
        print(e == f)
        print(e === f)
        //log:true false

        //一脸蒙蔽啊,已在社区提交了这个疑问````

5 ..in!in!in还么发现有什么用)

        print("..符号 in  (!in)还不知道怎么使用")
        //   i in [1,10] 闭区间
        for (i in 1..10) {
            print(i)
        }
        //i in[1,10) 半闭区间
        for (i in 1 until 10) {
            print(i)
        }

6 downTo()函数

        print("downTo()函数,倒叙便利,区间内循环")

        for (i in 5 downTo 1) {
            print(i)
        }

7 step 函数

        print("step()函数,设定迭代数量")
        for (i in 1..10 step 3) {
            print(i)
        }

        for (i in 10 downTo 1 step 2) {
            print(i)
        }

8 ::符号

        print(":: 符号")
        var clzz: Class<MainActivity> = MainActivity::class.java
        print(clzz.name)

9 @符号-跳出循环,中断方法,

9.1 限定this的类型
        class User {

            inner class State {
                fun getUser(): User {
                    //返回User
                    return this@User
                }

                fun getState(): State {
                    //返回State
                    return this
                }
            }
        }
9.2 作为标签,例跳出双层循环
      loop@  for(i in 1..10){

            for(v in 1..10){
                print("i=$i+|  v=$v")
                if(v == 5) break@loop
            }
        }
9.3 命名函数 自动定义标签
        fun f_run(){
            run{
                print("run method")
            }

            var i:Int= run{
                 return@run 12
                }

            print("$i")
    //匿名函数可通过自定义标签跳转和返回

            i = run (outer@{
                return@outer 22
            })
             print("$i")
        }
        f_run()



    //forEach中无法使用continue和break;
    var ins:List<Int> = listOf(1,2,3,4,5,6,7)
        ins.forEach {
            if(it == 4) return@forEach //相当于在forEach函数中continue,实际上是从匿名函数返回
            print("ins.forEach it=$it")
        }

        //声明一个标签,作为想要结束时跳转的节点
        run outer@{
            ins.forEach {
                if(it  == 7) return@outer //直接跳出方法outer,从而达到结束forEach
                if(it%2 == 0) return@forEach //中断以后逻辑,进行下一次循环,所以下面将不会打印偶数
                print("ins.forEach it=$it")
            }

        }

10 符号 as

        print("类型转换  as  as?")
        var oper1:KotlinRunner = Operator()
        //尽量使用 as?避免CCE-(无知缩写)
        var oper2 = oper1 as? Operator

11 符号 is

        print("类型判断符号   is")

       fun classCheck(oper:KotlinRunner?):String{

            when(oper is Operator){
                true -> return "Operator"
                false -> return "null"
            }

        }
        print(classCheck(oper2))


END

感谢以下文字的分析
Kotlin中常用操作符和用法介绍

相关文章

  • Kotlin高级特性(二)

    一、集合操作符 Kotlin中可以通过集合操作符直接对集合进行操作,从而得到想要的结果。 map:对集合中的数据做...

  • kotlin 操作符集合

    最近开始了kotlin的学习,刚开始没两天我就发现在各种与语句中需要给变量加很多符号修饰。对这些符号知之甚少,所以...

  • Kotlin集合操作符

    总数操作符: any:判断集合中是否有满足条件的元素 all:判断集合中的元素是否都满足条件 none:判断集合是...

  • kotlin集合操作符

    在kotlin中数组和list的操作符基本共同,所以在数组中可用的操作符也可以在list中使用。 1、统计操作符 ...

  • Kotlin 学习笔记(十三)高阶函数

    上一篇 - kotlin中 集合序列使用、操作符汇总[https://www.jianshu.com/p/a14...

  • Kotlin常用集合操作符

    创建集合 List: 1.创建一个空List:val emptyList =emptyList()2.创建一个普通...

  • kotlin集合操作符初探

    在kotlin中数组和list的操作符基本共同,所以在数组中可用的操作符也可以在list中使用。 统计操作符 an...

  • Kotlin语法基础(四)

    Kotlin语法基础篇(四) 相关链接: kotlin语言中操作符的重载 一、操作符及其重载 操作符分类可简单分为...

  • 快速学习Kotlin(八)作用域函数

    作用域函数是什么? 他是Kotlin内置的,可以对数据进行一系列变换的函数。他们与集合的操作符非常相似,但是集合操...

  • Kotlin学习之可变与不可变集合

    Kotlin学习之可变与不可变集合 一、可变集合与不可变集合有哪些? Kotlin集合框架在kotlin.coll...

网友评论

    本文标题: kotlin 操作符集合

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