【小米App】Kotlin编程入门指南

Kotlin编程入门指南

Kotlin是一种现代、简洁且安全的编程语言,由JetBrains开发,现已成为Android官方推荐开发语言。以下是Kotlin的全面入门指南。

一、Kotlin基础

1. 变量声明

// 不可变变量(推荐)
val name: String = "Kotlin"  // 显式类型声明
val version = 1.4            // 类型推断

// 可变变量
var count = 0
count = 10

2. 基本数据类型

// 数字类型
val intNum: Int = 10
val doubleNum: Double = 3.14

// 布尔类型
val isTrue: Boolean = true

// 字符和字符串
val char: Char = 'K'
val str: String = "Kotlin"
val multiLine = """
    Hello
    Kotlin
"""

3. 控制流

// if表达式(可作为返回值)
val max = if (a > b) a else b

// when表达式(增强版switch)
when (x) {
    1 -> print("x == 1")
    2, 3 -> print("x == 2 or 3")
    in 4..10 -> print("4到10之间")
    else -> print("其他")
}

// 循环
for (i in 1..5) { print(i) }       // 1到5
for (i in 1 until 5) { print(i) }   // 1到4
for (i in 5 downTo 1) { print(i) }  // 5到1
for (i in 1..5 step 2) { print(i) } // 1,3,5

二、函数编程

1. 基本函数

// 带默认参数的函数
fun greet(name: String = "World"): String {
    return "Hello, $name!"
}

// 单表达式函数
fun square(x: Int) = x * x

// 调用函数
greet()           // 使用默认参数
greet("Kotlin")   // 传递参数

2. 高阶函数

// 函数作为参数
fun calculate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}

// Lambda表达式
val sum = calculate(5, 3) { x, y -> x + y }
val mul = calculate(5, 3) { x, y -> x * y }

// 常用高阶函数
listOf(1, 2, 3).map { it * 2 }      // [2, 4, 6]
listOf(1, 2, 3).filter { it > 1 }   // [2, 3]
listOf(1, 2, 3).reduce { acc, i -> acc + i }  // 6

三、面向对象编程

1. 类和对象

// 主构造函数
class Person(val name: String, var age: Int) {
    // 次构造函数
    constructor(name: String) : this(name, 0)
    
    // 属性
    var nickname: String = ""
        set(value) {
            field = value.lowercase()
        }
    
    // 方法
    fun introduce() {
        println("I'm $name, $age years old")
    }
}

// 使用类
val person = Person("Alice", 25)
person.age = 26
person.introduce()

2. 数据类

// 自动生成toString(), equals(), hashCode(), copy()等
data class User(val id: Int, val name: String)

// 使用数据类
val user1 = User(1, "Alice")
val user2 = user1.copy(name = "Bob")
val (id, name) = user1  // 解构声明

3. 单例对象

object Singleton {
    fun doSomething() {
        println("Doing something")
    }
}

// 使用单例
Singleton.doSomething()

四、空安全特性

1. 可空类型

var nullableStr: String? = null  // 可空变量
var nonNullStr: String = "text"  // 非空变量

// 安全调用
val length = nullableStr?.length  // 返回Int?

// Elvis操作符
val len = nullableStr?.length ?: 0  // 如果为null则返回0

// 非空断言(谨慎使用)
val forcedLen = nullableStr!!.length  // 可能抛出NPE

2. 安全转换

val obj: Any = "String"
val str: String? = obj as? String  // 安全转换,失败返回null

五、集合操作

1. 集合创建

// 不可变集合
val list = listOf("a", "b", "c")
val set = setOf(1, 2, 3)
val map = mapOf(1 to "one", 2 to "two")

// 可变集合
val mutableList = mutableListOf(1, 2, 3)
mutableList.add(4)

2. 集合操作

val numbers = listOf(1, 2, 3, 4, 5)

// 过滤
val evens = numbers.filter { it % 2 == 0 }  // [2, 4]

// 映射
val squares = numbers.map { it * it }       // [1, 4, 9, 16, 25]

// 排序
val sorted = numbers.sortedDescending()     // [5, 4, 3, 2, 1]

// 分组
val grouped = numbers.groupBy { if (it % 2 == 0) "even" else "odd" }
// {"odd"=[1,3,5], "even"=[2,4]}

六、扩展函数

// 为String类添加扩展函数
fun String.addExclamation() = "$this!"

// 使用扩展函数
println("Hello".addExclamation())  // 输出: Hello!

// 扩展属性
val String.lastChar: Char
    get() = this[length - 1]

println("Kotlin".lastChar)  // 输出: n

七、协程基础

import kotlinx.coroutines.*

// 启动协程
fun main() = runBlocking {
    // 启动新协程
    val job = launch {
        delay(1000L)  // 非阻塞延迟
        println("World!")
    }
    
    println("Hello,")
    job.join()  // 等待协程完成
}

// 异步返回结果
suspend fun fetchData(): String {
    delay(1000)
    return "Data"
}

fun main() = runBlocking {
    val result = async { fetchData() }
    println(result.await())  // 输出: Data
}

八、与Java互操作

1. 调用Java代码

// Java类
public class JavaClass {
    public static String getMessage() {
        return "From Java";
    }
}

// Kotlin中调用
val message = JavaClass.getMessage()

2. Java调用Kotlin

// Kotlin文件
@file:JvmName("KotlinUtils")

fun getGreeting() = "Hello from Kotlin"

// Java中调用
String greeting = KotlinUtils.getGreeting();

九、学习资源

  1. 官方文档

  2. 在线练习

  3. 推荐书籍

    • 《Kotlin实战》
    • 《Kotlin编程权威指南》
  4. 开发工具

    • IntelliJ IDEA (内置Kotlin支持)
    • Android Studio (Kotlin Android开发)

Kotlin结合了面向对象和函数式编程的特性,具有简洁、安全和互操作性强的特点,是现代应用开发的优秀选择。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Botiway

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值