基础语法.md
自己不用关系 \n 换行 ,不用自己调整
val infoMesage = “””
AAAAAAAAAAA
BBBBBBBBBBB
CCCCCCCCCCC
DDDDDDDDDDD
EEEEEEEEEEE
“”” // 前置空格
println(infoMesage)
val infoMesage2 = """
AAAAAAAAAAA
BBBBBBBBBBB
CCCCCCCCCCC
DDDDDDDDDDD
EEEEEEEEEEE
""".trimIndent() // 没空格
println(infoMesage2)
val infoMesage3 = """
?AAAAAAAAAAA
?BBBBBBBBBBB
?CCCCCCCCCCC
?DDDDDDDDDDD
?EEEEEEEEEEE
""".trimMargin("?") // 没空格 控制|
println(infoMesage3)
// 需求:显示 $99999.99
val price = """
${'$'}99999.99
""".trimIndent()
println(price)
}
1 |
|
在变量类型后面加上 ? 后缀,将变量指定为可为 null,即可空类型。如以下示例所示:
1 | val v2: String? = null |
如果我们把kotlin源代码编译成字节码。然后通过字节码反编译成java代码,你会发现使用?
修饰的变量,会是一个Java的包装类型(比如Ingeter),反之为基本数据类型(比如int)。
一定要知道使用**?**
和不使用,它们不是同一个类型。
断言运算符!!
与?
当然,Kotlin的空安全设计对于声明可为空的参数也有处理方式,在使用时要进行空判断处理,有两种处理方式,字段后加!!
像Java一样抛出空异常,另一种字段后加?
。
1 |
|
函数返回值可为空?
1 | // : Int? === 允许返回null |
?:
操作符
1 | // ?: 如果你一定要输出null 就让你 “你很牛逼” |
区间表达式(Range expressions)
1 | package simple01.s05 |
数组
typealis
函数字面量和内联函数(Function literals & inline functions)
智能转换(Smart casts)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LT的编程笔记!