继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第12天-C01学习Kotlin

taoy
关注TA
已关注
手记 94
粉丝 9
获赞 1
  • 课程名称:一课掌握Kotlin 突破开发语言瓶颈
  • 章节名称:
    • 第4章:类型初步
      • 4-3空类型安全
  • 讲师姓名:bennyhuo
  • 时间:2022-08-15 22:04

课程内容

  • 空类型安全:空指针异常是最常见的错误,为了一劳永逸解决这个麻烦,使用了空类型安全

  • 定义指定类型时,都是不再允许再为其赋值null

  • 再声明为某一个类型后,该类型变量都不能设置为null

  • 例子:

    var nonNull: String = "Hello"//这里的String与Java的String类型不同,该类型变量不能为null
    // nonNull = null// 编译器会报错
    val length = nonNull.length// 由于根本不会担心为空,所以可以放心使用
    
  • 特殊:

    • 需要能兼容空类型,即能为变量赋值为空

      var nullable: String? = "Hello"//这里的问号就表明,该变量可以赋值为空。即该变量为可空类型
      // 错误写法
      val length01 = nullable.length//编译器会报错,因为nullable可能为空,调用其属性会报错
      // 正确写法,这是在明确知道变量不会为空的情况下的写法
      val length02 = nullable!!.length// 两个惊叹号表示将变量强转成不可空类型,但是也不安全
      // 如果变量可能为空,安全写法
      val length03 = nullable?.length//如果nullable为空,则变量length03也会是空类型
      val length04 = nullable?.length ?: 0//如果nullable为空,会返回?:后面的值,elvis符
      
    • 不能为空类型与可空类型关系

      var x: String = "Hello"
      var y: String? = "World"
      
      x = y//报错,类型不匹配Type mismatch
      y = x//OK,没有问题,说明String是String?类型的子类,毕竟?就可以比原来多一个空类型,集合变大了一个
      
    • 平台类型

学习心得

本章内容说明为了解决空指针问题,Kotlin平台真的是操碎了心

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP