美文网首页
Kotlin:学习笔记一

Kotlin:学习笔记一

作者: 过期的薯条 | 来源:发表于2018-03-09 14:33 被阅读37次

    1.引言

    从今天开始在以后的2个月内熟悉使用kotlin,快速的将kotlin用于实战项目中。以Mvp+Dagger+Okgo+Rxjava+Kotlin的方式来开发以后的app。

    2.正题

    kotlin中一切皆是对象。数值,字符串,布尔等都是属于内置对象。字节大小如下:


    image.png

    在程序中使用这些内置对象,就像在java中使用一样的。只不过kotlin里面对数值,字符串等进行自动装箱。例如:

    image.png
    s的类型返回的Int。
    同理缓存"123",也是一样,将“123”自动装箱成String.
    注意:字符不能当成数字,必须得调用toInt() 转换下

    kotlin中小类型的变量不能隐式转换成大类型的。例如java中:

     public void t(){
            int a=12;
            double b=a;//小类型隐式转换成大类型
        }
    

    但是在kotlin中

    fun  test(){
      var i:Int=123
      var d:Double=i;//编译出错 正确姿势i.toDouble()
    }
    

    kotlin运算

    kotlin提供的语法糖真的是多。
    这是完整的位运算列表(只用于 Int 和 Long):

    shl(bits) – 有符号左移 (Java 的 <<)
    shr(bits) – 有符号右移 (Java 的 >>)
    ushr(bits) – 无符号右移 (Java 的 >>>)
    and(bits) – 位与
    or(bits) – 位或
    xor(bits) – 位异或
    inv() – 位非
    

    浮点比较

    区间实例以及区间检测:a..b、 x in a..b、 x !in a..b

        fun test() {
            var s = 16;
            val x = (s shl 1)//32
            if (x !in 1..33){
            }
        }
    

    kotlin 数组 Array<T>

    • 生成一个带值的数据,通过arrayOf函数 。例如 arrays= arrayOf("1","2","3")
    • 生成一个没得数值,只有大小的数据.通过arrayOfNulls函数,例如:var a: Array<String?> = arrayOfNulls<String>(5);

    kotlin for循环

    • for (item in collection) print(item) item为collection中的每个数值,不是下标
    • i in array.indices 通过下标i 来循环遍历array,例如:
      for (n in arrays!!.indices){
           Log.d("4577155", arrays!![n]);
      }
    
    • 区间中的循环for(item in a..b).例如:

    kotlin 返回和跳转

    kotlin中break ,continue,return 与java的break ,continue,return用法基本一致。唯一不同的是kotlin给 return,break ,continue增加了“标签功能”。例如return得标签:

    return标签
    java public fun test(){
            arrays!!.reduce reduce@{ s, s1 ->
                return@reduce s+s1    //reduce操作符要求返回一个String
            }
            return   //要求返回一个Unit
        }
    

    去掉 标签就会编译出错,提示返回值是Unit 而不是String。说明kotlin并不能根据return 返回的结果,对应到 对应的方法。

    Break 和 Continue 标签

    在 Kotlin 中任何表达式都可以用标签(label)来标记。 标签的格式为标识符后跟 @ 符号,例如:abc@、fooBar@都是有效的标签。 要为一个表达式加标签,我们只要在其前加标签即可。例如:

     public fun test1() {
            wxy@for (a in 1..10) {
                wxy1@for (b in 5..10) {
                    if (a==b){
                        break@wxy
                    }
                }
            }
        }
    

    Kotlin if表达式

    • kotlin拥有java中if/else得用法,除此之外还有if作为代码块的使用,将if的结果当成结果返回
       var max1 = if (a < b) {
          b
       } else {
          a
      }
    
    • if还可以引入区间判断方法,例如判断 String 是不是在字符串数组中,可以如下所示进行判断:
    
            if (x in arrays!!){
                
            }
    

    Kotlin when表达式

    kotlin中没得switch控制语句,取而代之的是when表达式.

     when (a) {
                1 -> {
                    System.out.println("1")
                }
                2 -> {
                    System.out.println("2")
                }
                else -> {
                    System.out.println("3")
                }
            }
    

    相关文章

      网友评论

          本文标题:Kotlin:学习笔记一

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