十五、Kotlin 基础语法详解

1. 变量声明
  • val (不可变变量)

    val name = "Kotlin"  // 类型自动推断为String
    val age: Int = 10    // 显式声明类型
    // name = "Java"     // 错误:val 不可重新赋值
  • var (可变变量)

    var count = 5
    count = 10           // 允许修改
    var message: String  // 未初始化需声明类型
    message = "Hello"

2. 数据类型
  • 基本类型(全部为对象)

    val intVal: Int = 100
    val doubleVal: Double = 3.14
    val boolVal: Boolean = true
    val charVal: Char = 'A'
  • 字符串

    val text = "Kotlin"
    val multiline = """
        Line 1
        Line 2
    """.trimIndent()
  • 字符串模板

    val name = "Alice"
    println("Hello, $name!")       // Hello, Alice!
    println("1 + 2 = ${1 + 2}")    // 1 + 2 = 3
  • 数组

    val numbers = arrayOf(1, 2, 3)
    val zeros = Array(3) { 0 }     // [0, 0, 0]

3. 控制流
  • if 表达式(可返回值)

    val max = if (a > b) a else b
  • when 表达式(增强版 switch)

    val grade = when (score) {
        90..100 -> "A"
        in 80..89 -> "B"
        else -> "C"
    }
  • 循环

    for (i in 1..5) print(i)       // 1到5(包含)
    for (i in 1 until 5) print(i)  // 1到4(不包含5)
    for (i in 5 downTo 1) print(i) // 5到1
    for (i in 1..10 step 2)        // 1,3,5,7,9
    
    while (x > 0) { x-- }

4. 函数
  • 基本声明

    fun add(a: Int, b: Int): Int {
        return a + b
    }
  • 表达式函数

    fun add(a: Int, b: Int) = a + b
  • 默认参数 & 命名参数

    fun greet(name: String = "Guest", age: Int) {
        println("$name is $age years old")
    }
    greet(age = 25)                // 输出:Guest is 25 years old

5. 空安全设计
  • 可空类型?

    var nullableStr: String? = null
    // nullableStr.length        // 编译错误:需安全调用
  • 安全调用?.

    val length = nullableStr?.length  // 若为null则返回null
  • Elvis 操作符?:

    val len = nullableStr?.length ?: 0  // null时返回0
  • 非空断言!!

    val forcedLen = nullableStr!!.length // 强制调用(可能抛NPE)

6. 类与对象
  • 类定义

    class Person(val name: String, var age: Int) { // 主构造器
        fun speak() = println("$name is speaking")
    }
    val person = Person("Alice", 30)
  • 属性

    class Rectangle(width: Int, height: Int) {
        val area = width * height  // 只读属性
        var color: String = "Red"  // 可变属性
    }

7. 数据类(自动生成 toString()equals() 等)
data class User(val id: Int, val name: String)
val user = User(1, "Tom")
println(user) // 输出:User(id=1, name=Tom)

8. 扩展函数
fun String.addExclamation() = "$this!"
println("Hi".addExclamation()) // 输出:Hi!

9. Lambda 表达式
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3)) // 5

val numbers = listOf(1, 2, 3)
numbers.filter { it > 1 } // [2, 3]

10. 伴生对象(替代静态成员)
class MyClass {
    companion object {
        fun create() = MyClass()
    }
}
val instance = MyClass.create()

关键特性总结

  1. 简洁性:减少模板代码(如数据类、类型推断)

  2. 安全性:空安全设计避免 NPE

  3. 互操作性:100% 兼容 Java

  4. 函数式支持:Lambda、高阶函数

  5. 扩展函数:无需继承扩展类功能

通过掌握这些基础语法,您已具备使用 Kotlin 进行开发的核心能力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值