IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Kotlin基础 空安全与异常 -> 正文阅读

[移动开发]Kotlin基础 空安全与异常

一. 空安全

? ? ? ?

1.null

? ? ? ? Kotlin会把可能出现null问题,在编译时以报错的方式,提前在编译期强怕我们重视起来,而不是等到运行时报错,防范于未然。

2.Kotlin的null类型

? ? ? ? 在Kotlin中我们可以这样来定义空类型。

//想要把属性设置为空需要在类型处加? 
var str:String?= readLine()
    str=null
    println("input:$str")

3.空安全

? ? ? ? Kotlin区分可空类型和非可空类型,所以你用一个可空类型变量打印或调用函数,而他

有可能不存在,这种情况编辑器会随时报错。

1.安全调用操作符

? ? ? ? ?我们可以使用空安全调用操作符,使用后它会检查属性值,而过为null则不调用

fun main() {
   // 加?为空不调用
  var str= readLine()?.capitalize()
    println("input:$str")

}

? ? ? ? ?安全调用运行在可空类型上调用函数,但是如果还想做点额外的事,比如为空时返回一个字段,我们可以使用let函数,它的主要作用是让你在指定的作用域内定义一个或多个变量。

fun main() {
  var str: String? = "butterfly"
  str = null
  str = str?.let {
    if (it.isNullOrBlank()) {
      "butterfly"
    } else {
      it.capitalize()
    }
  }
  println("$str")

}

2.使用非空断言操作符

? ? ? ? !!由称感叹号操作符,当变量值为null时,他会调用后续方法

????????


fun main() {
  var str :String? ="butterfly"
  str=null
    //!! 为空继续执行
  print(str!!.capitalize())
   

}

3.使用if来判断null情况

? ? ? ? 我们也可以使用if判断,但是相比之下安全调用操作符用起来更灵活,更容易链式调用。

fun main() {
    var str = readLine()
    if (str != null) {
        str = str.capitalize()
        println(str)
    } else {
        println("为null.")
    }
}

? ? ? ? ? ? ? ? ??

4.空合并操作符

fun main() {
    var str: String? = "jack"
    str = str?.let { it.capitalize() } ?: "butterfly"
    print(str)
}

二.异常

1.抛出异常

class ExceptionFix ():IllegalAccessException("操作异常")


fun main() {
    var  num:Int? =null;
    //如果number为空那么就拋出异常
    num ?:throw  ExceptionFix()
}

2.处理异常

fun main() {
    var  num:Int? =null;
    try {
        num!!.plus(1)
    }catch (e: Exception){
        print(e)
    }
}

3先决条件函数

fun main() {
    var  num:Int? =null;
    try {
        checkOperation(num)
      //  num!!.plus(1)
    }catch (e: Exception){
        print(e)
    }
}

fun checkOperation(number:Int?){
    //如果number为空那么就拋出异常
    //number ?:throw  ExceptionFix()
    //如果前面为空就抛出后面 表达式中的内容
    checkNotNull(number,{"checkNotNull"})
    //如果前面为false就抛出后面 表达式中的内容
    require(false,{"require"})
    //如果前面为空就抛出后面 表达式中的内容
    requireNotNull(number,{"requireNotNull"})
    //如果参数为null,则异常,否则抛出表达式中的内容
    error(number)
    //如果前面为false就异常
    assert(true,{"assert"})
}

? ? ??

?

????????

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:24:56  更:2021-11-28 11:25:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:08:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码