Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 变量与常量(var 和 val)

变量与常量(var 和 val)

1. 变量与常量的基本概念

在 Kotlin 中,变量和常量是存储数据的基本单元。它们的声明方式决定了其可变性:

  • 变量(var):值可以多次修改。
  • 常量(val):值只能赋值一次(类似 Java 的 final 变量)。

2. 声明语法

变量(var)

var variableName: Type = initialValue
  • 示例:
var age: Int = 25
age = 26 // 允许修改

常量(val)

val constantName: Type = initialValue
  • 示例:
val pi: Double = 3.14159
// pi = 3.14 // 编译错误:val 不可重新赋值

3. 类型推断

Kotlin 支持类型推断,可以省略显式类型声明:

var name = "Alice" // 自动推断为 String
val score = 100    // 自动推断为 Int

4. 使用场景建议

  • 优先使用 val:默认使用不可变变量,避免意外修改。
  • 仅在需要时使用 var:如循环计数器或需要动态更新的状态。

5. 注意事项

  1. 必须初始化:Kotlin 要求变量或常量在声明时或构造函数中初始化。
    var count: Int // 编译错误:未初始化
    
  2. 延迟初始化:使用 lateinit(仅 var)或惰性初始化(by lazy,仅 val)。
    lateinit var username: String
    val heavyData by lazy { loadData() }
    

6. 与 Java 的对比

KotlinJava可变性
var普通变量可变
valfinal 变量不可变

示例代码

fun main() {
    val language = "Kotlin" // 常量
    var version = 1.4       // 变量
    
    println("$language $version") // 输出:Kotlin 1.4
    version = 1.8
    println("$language $version") // 输出:Kotlin 1.8
}

最佳实践:尽量使用 val 声明不可变数据,减少程序副作用,提高代码可读性和线程安全性。

Last Updated:: 5/21/25, 7:58 PM