返回顶部
首页 > 资讯 > 移动开发 >Kotlin浅析null操作方法
  • 971
分享到

Kotlin浅析null操作方法

2024-04-02 19:04:59 971人浏览 独家记忆
摘要

1.在java中由于null引起的空指针异常,是一个运行时异常。 在Kotlin中为了避免这样的问题,会在编译期提示出来,而不是在运行期才报错。 1)比如我们把null赋值给一个已经

1.在java中由于null引起的空指针异常,是一个运行时异常。

Kotlin中为了避免这样的问题,会在编译期提示出来,而不是在运行期才报错。

1)比如我们把null赋值给一个已经被赋值的变量或者定义一个返回null的函数,编译器就会报错提示:Null can not be a value of a non-null type String

    var hello = "hello world"
    hello = null
fun getString(): String{
    return null
}

2)如何把null赋值给一个变量,或者函数,带上一个?这样编译器就不会报错了。

    var hello: String? = "hello world"
    hello = null
fun getString(): String? {
    return null
}

2.安全调用操作符:问号?

为了避免空指针,kotlin不让我们给非空变量赋值null,但null在Kotlin中依存在,这种情况下,我们可以使用安全操作符 ?来避免发生空指针异常。

当编译器遇到安全调用操作符时,会去检查,如果是null,就会跳过函数的执行,而不会抛出异常。

比如下面这几行代码,在java中必然会抛出异常,但是在kotlin中会跳过count()函数执行,并返回null,不会抛出异常。

fun main() {
    val str = getString()
    val count = str?.count()
    println(count)
}
fun getString(): String? {
    return null
}

3.非空断言操作符:!!双感叹号

!!又称为感叹号操作符,当变量为null时,会抛出空指针异常,NullPointerException

fun main() {
    val str = getString()
    val count = str!!.count()
    println(count)
}
fun getString(): String? {
    return null
}

4.在Kotlin中也可以用if来判断null的情况

fun main() {
    val str = getString()
    if (str == null) {
        println("null")
    } else {
        val count = str?.count()
        println(count)
    }
}
fun getString(): String? {
    return null
}

5.空合并操作符?:

?: 如何符号左边的值为null,则使用右边的值。

下面这行代码打印的结果就是 hello

fun main() {
    val str = getString() ?: "hello"
    println(str)
}
fun getString(): String? {
    return null
}

6.Kotlin中捕获异常 try catch

    try {
        val str = getString()
        val count = str!!.count()
        println(count)
    } catch (e: Exception) {
        e.printStackTrace()
    }

到此这篇关于Kotlin浅析null操作方法的文章就介绍到这了,更多相关Kotlin null内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Kotlin浅析null操作方法

本文链接: https://lsjlt.com/news/166066.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Kotlin浅析null操作方法
    1.在java中由于null引起的空指针异常,是一个运行时异常。 在kotlin中为了避免这样的问题,会在编译期提示出来,而不是在运行期才报错。 1)比如我们把null赋值给一个已经...
    99+
    2024-04-02
  • Kotlin静态方法的使用浅析
    在Java中定义一个静态方法非常之简单,只需要在方法上声明一个static关键字就可以了: public class Util { public static void do...
    99+
    2022-11-13
    Kotlin 静态方法 Kotlin 静态变量
  • Kotlin操作符重载的方法
    这篇“Kotlin操作符重载的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Kotlin操作符重载的方法”文章吧。算数运...
    99+
    2023-06-30
  • 在es中查询null值的操作方法
    目录1、背景2、需求3、准备数据3.1 创建mapping3.2 插入数据4、查询 name字段为null的数据5、查询address不存在或值直接为null的数据6、参考链接1、背...
    99+
    2023-02-01
    es中查询null值 es null值查询
  • 浅析jQuery中子窗口和父窗口的操作方法
    随着互联网发展,网页越来越注重用户体验,而jQuery作为一款优秀的JavaScript库,给前端开发带来了极大的便利。在网页中,经常用到子窗口和父窗口的交互,下面就来介绍一下jQuery的子窗口和父窗口方法。一、子窗口操作1.打开子窗口在...
    99+
    2023-05-14
  • Kotlin浅析延迟初始化与密封类的实现方法
    目录一、lateinit延迟初始化关键字二、使用密封类优化代码一、lateinit延迟初始化关键字 Kotlin中很多语法特性,如变量不可变,变量不可为空,等等 这些特性都是为了尽可...
    99+
    2022-11-13
    Kotlin 延迟初始化 Kotlin 密封类
  • 浅析不同操作系统中设置Golang路径的方法
    在Golang中,设置路径是一个非常基础但也是非常重要的操作。它可以帮助我们更方便地访问和使用我们的项目文件和包。本文将介绍如何在不同的操作系统中设置Golang路径。Windows系统下的路径设置在Windows系统下,我们可以通过以下步...
    99+
    2023-05-14
  • 浅析php怎么操作数据库
    数据库是网络编程的重要组成部分,它用于存储和管理大量的数据。在网络应用中,对于用户信息、产品信息及其他数据信息都需要进行存储和管理,因此对于数据库的操作是开发网站必不可少的一部分。PHP作为一种广泛应用的后端服务器编程语言,也为我们提供了一...
    99+
    2023-05-14
    php 数据库
  • 浅析html的增删改查操作
    随着互联网的发展,HTML已成为网站开发的重要语言之一。HTML的增删改查是Web开发过程中的关键环节之一,本文将介绍HTML的增删改查操作。一、HTML的增加操作HTML的增加主要涉及三个方面:标签、属性和内容。在编辑HTML文档时,我们...
    99+
    2023-05-14
  • 浅析JPA分类表的操作函数
    这里说的分类表是指一般系统中用到的分类管理的表。 结构如下: CREATE TABLE `categories` ( `id` bigint(20) unsigned NOT N...
    99+
    2023-02-16
    JPA分类表 JPA分类表如何处理
  • Kotlin JSON解析的方法是什么
    本篇内容介绍了“Kotlin JSON解析的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Kotlin JSON解析开发...
    99+
    2023-07-05
  • Javascript闭包的作用与使用方法浅析
    目录一、变量的作用域二、如何从外部读取局部变量js 闭包(closure)是Javascript语言的一个难点,也是它的特色。 闭包的作用:通过一系方法,将函数内部的变量(局部变量)...
    99+
    2023-01-18
    JavaScript闭包 JS闭包
  • ADO操作的方法举例分析
    本篇内容主要讲解“ADO操作的方法举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ADO操作的方法举例分析”吧!进行ADO操作时需要注意相关的问题,你还可以使用另外一种方法。vbdata-...
    99+
    2023-06-17
  • 什么是原子操作?深入浅析go中的原子操作
    在我们前面的一些介绍 sync 包相关的文章中,我们应该也发现了,其中有不少地方使用了原子操作。 比如 sync.WaitGroup、sync.Map 再到 sync.Pool,这些结构体的实现中都有原子操作的身影。 原子操作在并发编程中是...
    99+
    2023-05-14
    原子操作 后端 Go
  • 浅析JavaScript中的操作符与表达式
    1.表达式1.1原始表达式3.14 //数字直接量 "hello world" //字符串直接量 /pattern/ //正则表达式直接量 true //返回一个布尔值: 真 false //返回一个布尔值:...
    99+
    2022-11-22
    javascript
  • 浅析uniapp $getappmap方法的用法
    作为一款跨平台的开发框架,uniapp在开发过程中为开发者提供了丰富的API接口,其中$getAppMap方法就是其中之一。$getAppMap方法可以在uniapp应用中获取应用地图的实例,让开发者可以通过该实例来进行地图相关的操作,本文...
    99+
    2023-05-14
  • 浅析Ubuntu操作系统上怎么安装Gitlab
    Gitlab是一个管理Git仓库的Web应用程序。它提供了类似于Github的功能,包括账户管理、讨论、代码审查和版本控制。Gitlab是开源软件,所以可以在服务器上自由地安装。在本文中,我们将演示如何在Ubuntu操作系统上安装Gitla...
    99+
    2023-10-22
  • Python yield 使用方法浅析
    如何生成斐波那契盗/strong> 斐波那契(Fibonacci)盗惺且桓龇浅<虻サ牡莨槭校谝桓龊偷诙鍪猓我庖桓鍪伎捎汕傲礁鍪嗉拥玫健S眉扑慊绦蚴涑鲮巢瞧盗械那 N 个数是一个非常简单的问题,许多初学者都...
    99+
    2022-06-04
    使用方法 Python yield
  • React浅析Fragments使用方法
    目录概述动机短语法带key 的Fragments概述 可以将子列表分组,而无需向DOM添加额外节点简单理解:空标签<React.Fragment></React.F...
    99+
    2022-12-03
    React Fragments的使用 React Fragments
  • 浅析Kotlin使用infix函数构建可读语法流程讲解
    我们在Kotlin中就多次使用A to B这样的语法结构构建键值对,包括Kotlin自带的mapOf()函数,这种语法结构的优点是可读性强。那么这种功能是怎么实现的?to是不是Kot...
    99+
    2023-01-18
    Kotlin infix函数 Kotlin infix函数构建可读语法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作