array[0]为
null
,把"5"赋值给最左边的array[0],array[0]不为
null
,把这array[0]赋值给最左边的array[0]判断代码三行变成一行,是不是精简。
Kotlin
中的空判断前言字符串空判断空字符串:""纯空格字符串:" "
null
字符串:
null
值为
null
字符串:"
null
"集合空判断集合值为
null
集合size为0尾巴
Kotlin
中一切皆对象,这里我们理解成对象的空判断。由于
Kotlin
是空安全的,普通可空对象可以通过 ?. 来避免产生空指针异常。
val p: Person? =
null
println("age is : ${p?.age}")
就算p对象为
null
,运行的时候也不会产生空指针异常而导致应用退出,打印如
https://www.runoob.com/
kotlin
/
kotlin
-basic-syntax.html
感觉这是
kotlin
的火星符号
Kotlin
空(
NULL
)检测机制,类似火星符号 ? !!
Kotlin
的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为
null
或配合?:做...
首先我们试图去从字面意义了解它:
code1?.code2 翻译为 :if code1 Not
Null
执行 code2;
code1?:code2 翻译为:if code1
Null
执行 code2;
?. 翻译为: If Not
Null
?: 翻译为: If
Null
如果是”?.“ 即表示if not
null
并执行后续
第一个正式使用
kotlin
,
kotlin
减少了很多new set get等方法,直接=即可,用起来十分简洁,以下是自己在此项目使用中经常用到的几个知识点,简单记录一下,方便之后查阅。
一、非空机制
1. 类型后面加?表示可为空
var a: String? =
null
if (a ==
null
) {
println("a is
null
")
} else {
println(a)
2. 变量后面加!!,可抛出控指针异常
1.一个非空的变量如果需要在后面赋值,则需要用lateinit。lateinit var只能用来修饰类属性,不能用来修饰局部变量,并且只能用来修饰对象,不能用来修饰基本类型(因为基本类型的属性在类加载后的准备阶段都会被初始化为默认值)。lateinit var的作用也比较简单,就是让编译期在检查时不要因为属性变量未被初始化而报错。lateinit可以在任何位置初始化并且可以初始化多次。而val 的延迟初始化则是要用 by lazy { 代码块 }。by lazy只能作用于val关键字标注的属性。当属性用到的
上一篇文章介绍了如何对循环语句进行操作,末尾还演示了发现空串时直接继续下一循环,只是在初始化字符串数组时使用了“val poem2Array:Array = ***”,该表达式不免令人疑惑,为何这里要在String后面加个问号?由此,本文就
Kotlin
如何判断和处理空值,再做进一步的深入探讨。以往的开发工作之中,少不了要跟各种异常作斗争,常见的异常种类包括空指针异常
Null
PointerExcep
kotlin
字符串判空Given a string, we have to check whether it is an empty, blank or
NULL
string.
给定一个字符串,我们必须检查它是否为空,空白或
NULL
字符串。
Example:
Input:
str = ""
Output:
用于在
Kotlin
...