空值处理:

【案例一:】

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>) { // 定义我的博客地址是固定的,不准修改了[常量]
val cnblogs: String = "https://www.cnblogs.com/android-deli/" println(cnblogs)
}

执行结果:

Android-Kotlin-空值处理&字符串比较&常量的更多相关文章

  1. Kotlin入门(5)字符串及其格式化

    上一篇文章介绍了数组的声明和操作,包括字符串数组的用法.注意到Kotlin的字符串类也叫String,那么String在Java和Kotlin中的用法有哪些差异呢?这便是本文所要阐述的内容了. 首先要 ...

  2. Android中如何截取字符串中某个字符之前或之后的字符串

    代码改变世界 Android中如何截取字符串中某个字符之前或之后的字符串 //截取#之前的字符串 String str = "sdfs#d"; str.substring(0, s ...

  3. 从字符串到常量池,一文看懂String类设计

    从一道面试题开始 看到这个标题,你肯定以为我又要讲这道面试题了 // 这行代码创建了几个对象? String s3 = new String("1"); 是的,没错,我确实要从这里 ...

  4. PHP 2 语句 数据类型 字符串函数 常量

    在 PHP 中,有两种基本的输出方法:echo 和 print. 在本教程中,我们几乎在每个例子中都会用到 echo 和 print.因此,本节为您讲解更多关于这两条输出语句的知识. PHP echo ...

  5. Android -------- kotlin插件神器Json直接生成javaBean

    这是一个data class从JSON字符串生成Kotlin 的插件,换句话说,是一个将JSON字符串转换为Kotlin data class(Json到Kotlin)的插件 在使用Kotlin进行开 ...

  6. Android Studio 轻松整理字符串到string.xml中

    昨天了解了Alt+Enter快捷键的大用处,今天又发现了一个快捷的方法,必须记下来.转载请注明出处http://www.cnblogs.com/LT5505/p/5466630.html 1.首先代码 ...

  7. String字符串针对常量池的优化

    String对象是java语言中重要的数据类型,但是不是基本数据类型.相对于c语言的char java做了一些封装和延伸. 针对常量池的优化:当两个String拥有相同的值时,它们只引用常量池中的同一 ...

  8. 字符串String: 常量池

    2.1          String类 String是不可变类, 即一旦一个String对象被创建, 包含在这个对象中的字符序列是不可改变的, 直至该对象被销毁. String类是final类,不能 ...

  9. Android的图片,字符串,demin,color,以及Array,boolean,Integer资源的使用-android学习之旅(五十四)

    总体介绍 颜色值的定义 定义字符串,颜色,尺寸资源 字符串 颜色资源 尺寸资源 使用字符串,颜色,尺寸资源 boolean的定义与使用 整形常量的定义与使用 数组资源的定义与使用 图片资源的使用

随机推荐

  1. UI设计教程:如何在设计中运用颜色

    灰度优先 我们习惯在设计阶段的早期就开始调整颜色和色调.但是,当你意识到自己花了3个小时来调整主色调的时候,你发现这种行为毫无帮助.虽然把玩颜色很有吸引力,但是你应该避免在设计初期进行这种行为. 相反 ...

  2. Python中的类方法、实例方法、静态方法

    类方法 @classmethod 在python中使用较少,类方法传入的第一个参数是 cls,是类本身: 类方法可以通过类直接调用或者通过实例直接调用,但无论哪种调用方式,最左侧传入的参数一定是类本身 ...

  3. MVC 模式和模型 2

    MVC框架 一个实现 MVC 模式的应用包含模型.视图.控制器 3 个模块: 模型:封装了应用的数据和业务逻辑,负责管理系统业务数据 视图:负责应用的展示 控制器:负责与用户进行交互,接收用户输入.改 ...

  4. 部署描述符(web.xml)和标注(annotation)

    部署描述符(web.xml) 详细信息可在http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html上下载web- ...

  5. 摹客首家发布Adobe XD插件

    10月19日,摹客iDoc发布了支持Adobe XD的插件,这是中国国内首款基于Adobe XD 正式API的插件. 设计师在Adobe XD 中安装并使用此插件,可以将设计稿上传到摹客iDoc,并使 ...

  6. IOS初级:UIAlertController

    - (IBAction)signOutAction:(id)sender { //初始化,StyleActionSheet是对话框的样式 UIAlertController *alert = [UIA ...

  7. .net使用NPOI的XSSFWorkbook进行web开发中导出Excel

    之前也使用过NPOI导出excel,这次是因为在导出的excel里新增了几个列,正好超出了255的限制,所以又要改了. 今天主要出了4个问题: 1. Invalid column index (256 ...

  8. ''TclError: no display name and no $DISPLAY environment variable''解决方法

    在模块前写入一下代码: import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt 具体解释见   http://m ...

  9. 程序员面试50题—sizeof的用法(6)

    以下为Windows下的32 位C++程序,请计算sizeof 的值void Func ( char str[100] ){sizeof( str ) = ?}void *p = malloc( 10 ...

  10. abaqus学习笔记-abaqus与umat调用基本原理

    参考: 1.http://ivt-abaqusdoc.ivt.ntnu.no:2080/v6.14/books/sub/default.htm 2.ABAQUS 用户材料子程序开发及应用-杨曼娟 3. ...