Kotlin| 青训营笔记
写在前面
这是我参与「第四届青训营 」笔记创作活动的第1天
该笔记为之前断断续续的笔记片段和大项目之后的笔记的整合,复习一些基本知识和在项目中遇到的问题。如有不妥之处,还望予以指正。
知识梳理
我本人主要学习的是 Java ,由于 Google 强推 Kotlin 作为 Android 开发的首要语言,在闲暇之余,来学习并记录一些 Kotlin 的基础知识。主要是大项目建议使用Kotlin,特地来学习一下基础知识作为记录,所以这篇没有什么干货,都是些基础知识。
程序入口
fun main() {
println("Hello, world!")
}
或者
fun main(args: Array<String>) {
println(args.contentToString())
}
基本类型
Kotlin 中的基本类型有:数字、布尔、数组、字符、字符串。基本与 Java 类似,不过类型全都是大写,都是对象。
数字类型
| 类型 | 大小 | 最小值 | 最大值 |
|---|---|---|---|
| Byte | 8 | -128 | 127 |
| Short | 16 | -32768 | 32767 |
| Int | 32 | -2,147,483,648 (-2^31) | 2,147,483,647 (2^31 - 1) |
| Long | 64 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807 (2^63 - 1) |
| 类型 | 大小(比特数) | 有效数字比特数 | 指数比特数 | 十进制位数 |
|---|---|---|---|---|
| Float | 32 | 24 | 8 | 6-7 |
| Double | 64 | 53 | 11 | 15-16 |
布尔
布尔用 Boolean 类型表示。
val myBoolean: Boolean? = null
字符和字符串
字符用 Char 类型表示。 如, '1'。
特殊字符可以以转义反斜杠 \ 开始。 支持这几个转义序列:\t、 \b、\n、\r、\'、\"、\\ 与 \$。
字符串用 String 类型表示。如,"Hello, world!"
数组
数组使用 Array 类来表示。
val arr = Array(5) { i -> (i * i).toString() }
val numbers: IntArray = intArrayOf(1, 2, 3)
输出
极其先进的输出方式,$ 后面可接变量名和 ${} 里面可接表达式。
val name: String = "Laffey"
println("My name is $name")
println("Length is ${name.length}")
If 表达式 和 When 表达式
Kotlin 允许 if 作为表达式,实际上手体验良好。
// 取最大值
val max = if (x > y) x else y
// 比大小,输出
val number = if (x > y) {
print("x大于y")
x
} else {
print("y大于x")
y
}
Kotlin 中没有 switch , 但是有一个更好用的 when,Java 新版本才有类似的东西,Kotlin 自带。
when (x) {
in 1..10 -> print("1 到 10")
11,12 -> print("11 和 12")
in 13..20 -> print("13 到 20")
else -> print("其他")
}
For 循环、While 循环、Break、Continue
类似 Java 里的增强 for 循环。
// for
for (item in collection) print(item)
// while
while (x > 0) {
x--
}
// do while
do {
val y = 1
} while (y != 1)
// break continue
loop@ for (i in 1..100) {
if (i < 10) break@loop
// if (i < 10) continue@loop
}
NULL
优雅,太优雅了。
var str: String? = null
// Java
if (str == null) println("")
if (str != null) println(str.length)
if (str != null) println(str.length)
else println("")
// Kotlin
println(str ?: "")
println(str?.length)
println(str?.length ?: "")
总结
Kotlin 相比于 Java 有其出彩的地方,但 Java 目前的地位无可撼动,但只要 Google 愿意,Kotlin 是肯定能发展起来的。
Kotlin 是世界上最好的语言