空值处理:
【案例一:】
1.Kotlin对控制处理很严格,默认就不能写null,否则编译都不通过:
描述Car汽车对象:
package cn.kotlin.kotlin_base01
/**
* 描述Car汽车对象
*
* 参数一: 车名, 参数二: 车的价值
*/
class Car (var carName:String, var carMoney: Double) {
/**
* 得到车的信息
*/
fun getCarInfo() : String {
return "这台车叫${carName},价值${carMoney}元人民币"
}
}
main测试方法:
默认是不能赋值为null的:
变量默认也不能赋值为null的:
以上案例体现了:Kotlin对控制处理很严格,默认就不能写null,否则编译都不通过
Kotlin但也提供了 可以赋值null的方式,那就是给 变量加? ,例如:var name : String ? = null 加入? 意思是:允许传null
【案例二】
package cn.kotlin.kotlin_base01
/**
* 描述Car汽车对象
*
* 参数一: 车名, 参数二: 车的价值
* 加入? 意思是:允许传null
*/
class Car (var carName:String ?, var carMoney: Double) {
/**
* 得到车的信息
*/
fun getCarInfo() : String {
return "这台车叫${carName},价值${carMoney}元人民币"
}
}
main测试方法:
package cn.kotlin.kotlin_base01
fun main(args: Array<String>) {
// 实例化保时捷对象
var car1 : Car = Car("保时捷AXT系", 1000000.00)
println(car1.getCarInfo())
// 实例化对象
var car2 : Car = Car(null, 65354.00)
println(car2.getCarInfo())
// 定义String类型的变量 加入? 意思是:允许传null
var str : String ? = null
println("str:${str}")
}
执行结果:
字符串比较:
string1.equals(string2) 等同于string1 == string2, 所以在Kotlin中的==是比较值本身, 而Java是[Java中 == 比较的是内存地址]
package cn.kotlin.kotlin_base01
/**
* 字符串比较
*/
fun main(args: Array<String>) {
var string1 : String = "ABC"
var string2 : String = "ABC"
// 打印true,因为在Kotlin中 == 比较的是值本身, [Java中 == 比较的是内存地址]
println(string1 == string2)
// 打印true,因为 equals 比较的也是值本身
// 所以string1.equals(string2) 等同于string1 == string2
println(string1.equals(string2))
}
执行结果:
常量:
val 是常量
var 是变量
被val修饰的,其他地方不能修改,否则编译不通过:
package cn.kotlin.kotlin_base01
/**
* 常量
*/
fun main(args: Array<String>) {
// 定义我的博客地址是固定的,不准修改了[常量]
println(c)
}
执行结果: