Kotlin语言基础-变量和数据类型
一、Kotlin的变量
Kotlin变量有两种形式var(variable)和val(value,取值)
val定义只读量,一旦创建,其值不会发生变化
例:
val a = 23
那么对于a对应的值就只能是23,不会发生变化。如何试图对a重新赋值都会导致编译错误。
var定义可变的变量,可以多次赋值修改变量的值。
例:
var b = 23
b=25
Kotlin语言中任何数据都是对象,因此对象都具有一个特定的数据类型。
二、数据类型
1.常见的数据类型
Short:短整型(16位)
Long:长整型(64位)
Int:整数(32位)
Double:双精度实数(64位)
Float:单精度实数(32位)
Byte:字节类型(8位)
Boolean:布尔类型(取值true或false)
在上述的类型中,表示常见的基本类型。
例如:
var a = 23
编译器会自动推断数据类型为Int
var b = 23.0
编译器会自动推断数据类型为Double
注意:var c:Int = null 是错误的。任何变量所属的类型后没有?表示非可空类型。
如果需要表示为可空类型,需要在数据类型后增加?,形如:
var c:Int? = null
这种定义c的变量才是正确的。
2. Any和Any?
任何一种非空类型的父类都是Any类型,Any类型表示成任何类型:
例如:
var d:Any = 23
d = true
d = 23.34
上述表示均为正确。
如果对于任何类型需要定义为可空类型,则可以表示为Any?类型,例:
var e:Any? = null
e = 23
e = false
3.Nothing
Nothing类型表示没有对象实例. 可以通过Nothing表示一个不存在的值。如果一个函数返回Nothing,这意味函数没有返回任何值(通常会抛出异常)。例:
fun doSomething():Nothing{
throw NullPointerException("空指针")
}
有一种特殊的表示,如
var c = null
这时,编译器会将c解析成Nothing?可空的,实质上的含义是不表示任何实例对象,即表示不存在的实例对象。
4.可空类型的相关运算
(1)安全调用 ?.
如果一个对象为null,调用这个对象的方法会抛出空指针异常,导致运行出现问题。因此需要避免这种情况发生,利用安全调用可以先对对象进行判断,如果为空返回null,否则执行操作。例如:
var str:String? = null
println(str?.length)
str = "hello"
println(str?.length)
运行结果是:
null
5
(2)Elvis运算
Elvis运算符是?:
表达的意思是如果对象为null,则返回?:后面的表达式的结果;否则返回对象本身。
例如:
var str :String? = null
println(str?:"空字符串”)
str = "hello"
println(str?:"空字符串”)
运行结果是:
空字符串
hello
(3)非空断言运算
非空断言运算符是!!,它用于判断对象是否为null,如果是,抛出NullPointerException异常,否则执行后续的操作。例:
var str:String? = null
println(str!!.length)
运行结果是:
Exception in thread “main” java.lang.NullPointerException …
又如:
var str:String? = “hello”
println(str!!.length)
运行结果是:
5
参考文献:
陈轶《Android移动应用开发(微课版)》 清华大学出版社 ISBN 978-7-302-59734-6
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/195552.html