Kotlin| 青训营笔记

57 阅读2分钟

Kotlin| 青训营笔记

写在前面

这是我参与「第四届青训营 」笔记创作活动的第1天

该笔记为之前断断续续的笔记片段和大项目之后的笔记的整合,复习一些基本知识和在项目中遇到的问题。如有不妥之处,还望予以指正。

知识梳理

我本人主要学习的是 Java ,由于 Google 强推 Kotlin 作为 Android 开发的首要语言,在闲暇之余,来学习并记录一些 Kotlin 的基础知识。主要是大项目建议使用Kotlin,特地来学习一下基础知识作为记录,所以这篇没有什么干货,都是些基础知识。

程序入口

fun main() {
    println("Hello, world!")
}

或者

fun main(args: Array<String>) {
    println(args.contentToString())
}

基本类型

Kotlin 中的基本类型有:数字、布尔、数组、字符、字符串。基本与 Java 类似,不过类型全都是大写,都是对象。

数字类型

类型大小最小值最大值
Byte8-128127
Short16-3276832767
Int32-2,147,483,648 (-2^31)2,147,483,647 (2^31 - 1)
Long64-9,223,372,036,854,775,808 (-2^63)9,223,372,036,854,775,807 (2^63 - 1)
类型大小(比特数)有效数字比特数指数比特数十进制位数
Float322486-7
Double64531115-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 是世界上最好的语言