亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【學習打卡】第13天-C01學習Kotlin

標簽:
Kotlin
  • 课程名称:一课掌握Kotlin 突破开发语言瓶颈
  • 章节名称:
    • 第4章:类型初步
      • 4-4智能类型转换
  • 讲师姓名:bennyhuo
  • 时间:2022-08-13 09:39

课程内容

  • Kotlin智能类型转换

    • Java中父类类型变量,可以用子类类型实例赋值,但如果要使用子类方法,需要强转为子类类型,才能运用

    • Kotlin简化上述步骤

      val kotliner: Kotliner = Person("Benny", 20)//Kotliner是子类,继承了父类Person
      if(kotliner is Person) {// 此处的is相当于Java的instanceof
          println((kotliner as Person).name)// as是类型强转的方法
          println(kotliner.name)// 可以智能转换,因为在if语句中已经判断过了
      }
      
      var value: String? = null
      value = "benny"
      if (value != null) {// 此的类型已经从之前的String?自动转换成String
          println(value.length)
      }// 在此if语句内部,value都是String类型,出了此范围就会变回String?类型
      
    • 不能进行智能转换的情况

      var tag: String? = null
      fun main() {
          if (tag != null) {
              println(tag.length)// 此处编译器会报错
              // tag是顶级变量,可能被其他程序或进程修改其值
          }
      }
      
    • 类型的安全转换

      val kotliner: Kotliner = ...
      println((kotliner as? Person)?.name)//强制类型转换如果失败,会返回null
      
  • 为防止空指针异常的建议:

    • 尽可能使用val来声明不可变引用,让程序的含义更加清晰明确
    • 尽可能减少对函数外部变量的访问,也为函数式编程提供基础
    • 必要时创建局部变量指向外部变量,避免因它变化引起程序错误

学习心得

Kotlin在解决Java编码的问题同时,会不会在制造新的问题?
本节回顾

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
9
獲贊與收藏
1

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消