美文网首页
kotlin 语法基础

kotlin 语法基础

作者: kot_flu | 来源:发表于2019-05-17 15:07 被阅读0次

    语法解析

    class Test { // 声明类 Test,默认public final
          var str1: String? = null // 声明一个可为空、初始值为 null 的 String 类型属性
          var str2: String = null!! // 声明一个没有空安全、初始值为 null 的 String 类型属性
          lateinit var str3: String // 声明一个延迟初始化、不能为空的 String 类型属性
          var str4: String = "str" // 声明一个不能为空、初始值为 null 的 String 类型属性
          var str5 = "str" // 声明一个不能为空、初始值为 “str” 的 String 类型属性
          val int1: Int = 1 // 声明一个不能为空、初始值为 1 的 Int 类型属性
    
          fun main1(str: String) : Unit {} // 声明一个参数为 String 类型、无返回值的方法
          fun main2(str: String) {} // 声明一个参数为 String 类型、无返回值的方法
          fun main3(str: String) : String {  // 声明一个参数为 String 类型、返回类型为 String
              return str
          }
      }
    

    Kotlin 中同样使用关键字 class 声明类,但是变量及方法的声明大有不同。
    使用关键字 var 声明可变变量,相当于 Java 中的普通变量,使用关键字 val 声明不可变变量,相当于 Java 中 final 修饰的常量。声明变量时,关键字后紧接着的是变量名,冒号后面是变量类型。
    使用关键字 fun 声明方法(据说取自于 Kotlin 编程有很多乐趣!),括号内参数声明和变量一致,变量名在前,类型在后。在方法声明的最后加上冒号后面才是返回类型,无返回值时为 Unit 类型,可省略。
    Kotlin 是空安全的语言。

    空安全

    什么是空安全?从上面的变量声明中可以看出来,Kotlin 中的类型默认情况下是不允许为空的

    var str: String = null // 错误的声明
    

    如果你这样声明一个变量,编译器就会告诉你 str 是不为空的类型,不能赋值为 null,所以,你需要在类型后面加上 ? 来标识这个变量可以为空才能赋值为 null。

    var str: String? = null // 正确的声明
    

    而 Kotlin 中的 !! 则被称为非空断言,可以放在任何变量后,将其转换成非空类型,即你告诉编译器这个 变量觉不可能为空,如果为空了,你也做好了抛出异常的准备。非空断言修饰的变量为 null 时,会抛出空指针异常。

    安全调用运算符: ?.

    var str: String? 
      str?.toString()    ----->  if(null != str) str.toString()
    

    Elvis 运算符: ?:

    var str: String
      str?: ""              -----> if(null == str) return "" else return str
    

    相关文章

      网友评论

          本文标题:kotlin 语法基础

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