本文介绍 Kotlin 基础语法。所有代码均可在Kotlin 官方在线代码调试器运行,部分代码下方也会提供链接直达。
专栏《零基础入门 Kotlin》持续更新中,欢迎订阅!
1. Hello,world!
按照惯例,学习一门编程语言,首先学习的就是如何使用该编程语言打印“Hello,world!”:
fun main() {
println("Hello, world!")
// Hello, world!
}
点我前往 Kotlin Playground 运行代码,点击运行后,效果如下:
在 Kotlin 中:
fun
用于声明函数。main
是函数名称,main 函数是程序运行的第一个函数。函数本体用大括号{}
括起来。println
打印函数,默认会在打印后的字符加上换行符\n
。
2. 语句
同 C 语言一样,Kotlin 程序由一行行语句组成,与 C 语言不一样的是,Kotlin 每个语句结尾分号 ;
可以省略。
// 以下两行代码都是正确的写法
println("Hello,world!");
println("Hello,world!")
如果不加分号 ;
,则语句需至少独占一行:
println("Hello,world!");println("Hello,world!")// 不报错
println("Hello,world!")println("Hello,world!")// 报错
同 C 语言一样,Kotlin 允许语句分行书写。也就是说,下列写法是允许的:
// 声明一个可读写的变量 temp
var temp = 8
+
9
println("temp = $temp")
// temp = 17
3. 表达式
表达式是一个计算式,用于完成各种运算(包括但不限于数学运算),并返回值:
1 + 1
Kotlin 的表达式和语句区分得并不是很明显,也就是说,上面的代码也可以当做语句放在在程序中,只是没有任何意义:
fun main() {
9+9 // 不报错
}
语句和表达式的区别:
- 语句可以包含表达式,但是表达式本身不构成语句。
- 表达式都有返回值,语句不一定有。因为语句用来执行某个命令,很多时候不需要返回值,比如变量声明语句
val temp = 1
就没有返回值。
4. 注释
Kotlin 的注释有两种方式,第一种方式将注释放在 /*...*/
之间:
/*我是注释*/
另一种是放在双斜杠 //
后面:
// 我是注释,这一行直到行尾都是注释
5. 变量
5.1 介绍
变量是计算机存储和读取数据的标识符,相当于给数据“取一个名字”。
5.2 声明和赋值
Kotlin 的变量以 val
或 var
标示:
val x = 0
var y = 1
val
声明的变量,第一次赋值(也叫初始化)之后不可以改变;var
声明的变量,初始化后可以改变:
fun main() {
val x = 0 // 只读(Read-only)变量
var y = 1 // 可读可写(Mutable)变量
x = 2 // 不允许,报错
y = 2 // 允许
}
变量可以在声明时赋值,就像上述代码一样;也可以稍后赋值,但此时声明变量时需注明变量数据类型(在变量名后以冒号 :
隔开):
fun main() {
val x:Int // 声明变量但不赋值,此时需要标注变量数据类型(Int整型)
x = 2
}
数据类型后面的章节会详细讲解,这里简单提一下:
类别 | 数据类型 | 例子 |
---|---|---|
整型 | Byte, Short, Int, Long | val year: Int = 2020 |
无符号整型 | UByte, UShort, UInt, ULong | val score: UInt = 100u |
浮点数 | Float, Double | val currentTemp: Float = 24.5f, val price: Double = 19.99 |
布尔值 | Boolean | val isEnabled: Boolean = true |
字符 | Char | val separator: Char = ‘,’ |
字符串 | String | val message: String = “Hello, world!” |
6. println()
6.1 基本用法
本系列教程会大量用到 println() 函数,这里简单介绍一下用法。
函数声明:
fun println(message: Any?)
println
将给定的 message
(可以是字符串,也可以是其他含有方法 toString() 的对象,关于对象的知识后面再讲)和换行符打印到标准输出流(一般是屏幕)。message
可以忽略,这样函数只会打印换行符,也就是打印空白行:
fun main() {
println("Hello,")
println() // 打印空白行
println("world!")
}
6.2 打印变量和表达式
要打印变量的值,只需要在变量前加上美元符号 $
:
fun main() {
val name = "Ben"
println("My name is $name.") // My name is Ben.
}
要打印表达式的值,只需要在美元符号 $
后用大括号 {}
将表达式扩起来:
fun main() {
val x = 1
println("x+1=${x+1}") // x+1=2
println("3+5=${3+5}") // 3+5=8
}
6.3 print()
如果不想要打印数据的时候,末尾自动添加换行符,可以使用 print()
代替。
print()
函数用法和 println
几乎一样,都是在屏幕上打印字符串,也支持打印变量和表达式。唯一的不同是 ,print
不会在末尾打印换行符:
fun main() {
print("hello,")
print("world!")
// hello,world!
}
部分参考资料: