Kotlin 基础语法入门教程
Kotlin 基础语法入门教程
本教程将带你了解 Kotlin 编程语言的核心语法。每节内容都配有简单易懂的中文说明和全新的代码示例。
1. 包的定义与导入
在 Kotlin 中,package 声明通常位于源文件的最顶部,用于组织代码。导入其他包的类或函数使用 import。
package com.example.learnkotlin
import kotlin.math.PI
import kotlin.text.* // 导入整个包
fun main() {
println(“圆周率的值是:$PI”)
}
注意:Kotlin 不要求目录结构与包名一致,但推荐保持一致以便维护。
2. 程序入口点:main 函数
Kotlin 程序从 main 函数开始执行。
fun main() {
println(“欢迎学习 Kotlin!”)
}
如果需要接收命令行参数:
fun main(args: Array
println(“传入的参数有:${args.joinToString()}”)
}
3. 标准输出
• print():输出内容,不换行。
• println():输出内容后换行。
fun main() {
print(“Kotlin “)
print(“很简单”)
println(“!”) // 换行
println(“学习愉快”)
}
输出:
Kotlin 很简单!
学习愉快
4. 从标准输入读取
readln() 函数用于从控制台读取用户输入的一行字符串。
fun main() {
println(“请输入你的名字:”)
val name = readln()
println(“你好,$name!”)
}
5. 函数定义
带返回值的函数
fun multiply(a: Int, b: Int): Int {
return a * b
}
fun main() {
println(“5 × 6 = ${multiply(5, 6)}”)
}
表达式体函数(可省略返回类型)
fun divide(a: Double, b: Double) = a / b
fun main() {
println(“10 ÷ 4 = ${divide(10.0, 4.0)}”)
}
无返回值函数(Unit 可省略)
fun greet(name: String) {
println(“你好,$name!”)
}
fun main() {
greet(“李明”)
}
6. 变量:val 与 var
• val:只读变量(不可变),赋值一次后不能再改。
• var:可变变量。
fun main() {
val birthYear = 1995 // 不可变
var age = 29 // 可变
age += 1
println(“出生年份:$birthYear,年龄:$age”)
}
Kotlin 支持类型推断,也可以显式声明类型:
fun main() {
val city: String = “北京”
var population: Long = 21540000
population = 21850000
println(“$city 人口约 $population”)
}
7. 类与实例
使用 class 定义类。主构造函数直接写在类名后。
class Student(val name: String, var score: Int)
fun main() {
val s = Student(“王芳”, 88)
println(“${s.name} 的成绩是 ${s.score}”)
s.score = 92
println(“更新后:${s.name} 的成绩是 ${s.score}”)
}
继承使用 :,父类需要标记 open。
open class Animal(val name: String)
class Dog(name: String, val breed: String) : Animal(name)
fun main() {
val dog = Dog(“小黑”, “柴犬”)
println(“${dog.name} 是一只 ${dog.breed}”)
}
8. 注释
Kotlin 支持单行注释和嵌套的多行注释。
// 这是单行注释
/*
这是多行注释
/* 可以嵌套 */
注释结束
*/
9. 字符串模板
可以在字符串中使用 $ 引用变量或 ${表达式}。
fun main() {
val name = “李华”
val score = 95
println(“学生:$name,成绩:${score + 5}(含加分)”)
}
10. 条件表达式:if
if 可以作为表达式返回值。
fun maxNumber(a: Int, b: Int) = if (a > b) a else b
fun main() {
println(“较大值是:${maxNumber(12, 7)}”)
}
11. for 循环
fun main() {
val fruits = listOf(“苹果”, “香蕉”, “樱桃”)
for (fruit in fruits) {
println(“我喜欢吃 $fruit”)
}
for (i in fruits.indices) {
println(“第 ${i + 1} 个水果是 ${fruits[i]}”)
}
}
12. while 循环
fun main() {
var count = 3
while (count > 0) {
println(“倒计时:$count”)
count–
}
println(“开始!”)
}
13. when 表达式
when 类似于其他语言的 switch,但更强大。
fun getSeason(month: Int): String = when (month) {
12, 1, 2 -> “冬季”
3, 4, 5 -> “春季”
6, 7, 8 -> “夏季”
9, 10, 11 -> “秋季”
else -> “无效月份”
}
fun main() {
println(“5月是:${getSeason(5)}”)
}
14. 区间(Range)
使用 .. 创建区间,in 检查是否包含。
fun main() {
val age = 18
if (age in 1..17) {
println(“未成年人”)
} else if (age in 18..100) {
println(“成年人”)
}
for (x in 1..5 step 2) {
print(“$x “) // 输出:1 3 5
}
}
15. 集合操作
fun main() {
val words = listOf(“kotlin”, “java”, “python”, “swift”)
words.filter { it.startsWith(“p”) }
.map { it.uppercase() }
.forEach { println(it) } // 输出:PYTHON
}
16. 空值与空安全
类型后加 ? 表示可空。使用前必须检查是否 null。
fun toIntOrNull(s: String): Int? {
return s.toIntOrNull()
}
fun main() {
val a = toIntOrNull(“123”)
val b = toIntOrNull(“abc”)
if (a != null && b != null) {
println(a + b)
} else {
println(“转换失败”)
}
}
17. 类型检测与自动转换
is 用于类型检测,检测后自动转换类型。
fun printLength(obj: Any) {
if (obj is String) {
// obj 自动转为 String
println(“字符串长度:${obj.length}”)
} else {
println(“不是字符串”)
}
}
fun main() {
printLength(“Hello Kotlin”)
printLength(123)
}
总结
你已经学习了 Kotlin 的以下基础语法:
• 包、入口函数、输入输出
• 函数定义、变量、类与继承
• 控制流(if、for、while、when)
• 区间、集合、空安全、类型检测
继续练习和阅读Kotlin教程,你会更快掌握 Kotlin 编程。祝你学习顺利!