在应用开发中,有些内容是固定的,例如“设置”中的菜单项;而有些内容会不断变化,比如新闻应用中的标题、来源或发布时间。为了让这些变化自动更新,而不是每次都修改代码,我们需要使用 变量(variable)。
在编程中,变量就像一个带标签的盒子,用来存放某个数据值。
举个例子:
name
(表示名字) "Alex"
(表示名字的值) 当你想修改名字时,只需替换盒子里的值,而不必修改整个程序。
如果在代码中直接写死所有值,程序只能应对特定情况。
使用变量就像写信时使用模板,只需替换不同内容即可应对多种情况:
尊敬的 { name }:
您好!很高兴今天能在 { location } 与您会晤。希望 { date } 还能见到您。
祝您天天好心情!
同样地,在应用中,你可以用变量来代替变化的数据:
name
location
date
这样,应用就能根据不同用户或场景自动生成对应内容,而不需要每次都重新编写逻辑。
在定义变量时,需要指定变量能存储的数据类型。Kotlin 提供了丰富的基本类型:
类型分类 | 数据类型 | 示例值 | 说明 |
---|---|---|---|
整数类型 (整型) |
|
| 8位有符号整数(范围:-128 ~ 127) |
|
| 16位有符号整数(范围:-32768 ~ 32767) | |
|
| 32位有符号整数(范围:-2³¹ ~ 2³¹-1) | |
|
| 64位有符号整数(需以 | |
浮点类型 |
|
| 32位单精度浮点数(需以 |
|
| 64位双精度浮点数(默认浮点类型) | |
字符类型 |
|
| 单个字符,使用单引号包裹 |
布尔类型 |
|
| 逻辑真值类型 |
字符串类型 |
|
| 字符序列,可用 |
数组类型 |
|
| 可存储任意类型的元素 |
集合类型 |
|
| 不可变列表 |
|
| 可变列表 | |
|
| 不可变集合(自动去重) | |
|
| 可变集合 | |
|
| 不可变键值对集合 | |
|
| 可变键值对集合 | |
空类型 |
| 任意类型值 | Kotlin 所有类的超类 |
|
| 表示无返回值(相当于 Java 的 | |
| - | 表示不会返回(如抛异常的函数) | |
可空类型 |
|
| 允许存储 |
String
Double
Int
:Boolea
nString
String
Int
🧩 定义变量定义变量的语法如下:
val 变量名: 数据类型 = 初始值
示例:
fun main() {
val count: Int = 2
println(count)
}
输出结果:
2
提示:val 表示不可变变量(定义后不能修改值)var 表示可变变量(定义后可重新赋值)
如果 Kotlin 能根据初始值判断类型,则可以省略类型声明:
val count = 2 // 自动推断为 Int
若未赋初始值,必须明确指定类型:
val count: Int //但直接这样写,会报错,要用后面讲解的其他只是修复
要在字符串中插入变量值,可使用 字符串模板:
fun main() {
val count = 10
println("You have $count unread messages.")
}
输出:
You have 10 unread messages.
${} 可在字符串中放入表达式,例如:
println("Total: ${5 + 3}")
整数变量可以直接参与运算,例如加减乘除:
fun main() {
val unreadCount = 5
val readCount = 100
println("You have ${unreadCount + readCount} total messages.")
}
输出:
You have 105 total messages.
在应用程序运行时,可能需要更新变量的值。例如购物车总金额会随用户操作而变化。
val
:只读变量,值不可更改。var
:可变变量,值可更新。示例:
fun main() {
var cartTotal = 0 // 声明可变变量
println("Total: $cartTotal")
cartTotal = 20 // 更新变量值
println("Total: $cartTotal")
}
输出:
Total: 0
Total: 20
可以使用表达式更新变量,例如增加或减少值:
fun main() {
var count = 10
println("You have $count unread messages.")
count = count + 1 // 增加 1
println("You have $count unread messages.")
count++ // 使用增量运算符,等同于 count = count + 1
println("You have $count unread messages.")
count-- // 使用减量运算符,等同于 count = count - 1
println("You have $count unread messages.")
}
You have 10 unread messages.
You have 11 unread messages.
You have 12 unread messages.
You have 11 unread messages.
提示:只有在变量值会发生变化时使用 var,否则优先使用 val 以保证代码安全。
用于存储小数,精度比 Float 高。
示例:
fun main() {
val trip1 = 3.20
val trip2 = 4.10
val trip3 = 1.72
val totalTripLength = trip1 + trip2 + trip3
println("$totalTripLength miles left to destination")
}
输出:
9.02 miles left to destination
用于存储文本,用双引号包裹。可通过 + 进行字符串拼接。
fun main() {
val nextMeeting = "Next meeting: "
val date = "January 1"
val reminder = nextMeeting + date + " at work"
println(reminder)
}
输出:
Next meeting: January 1 at work
字符串中使用引号需要转义:
fun main() {
println("Say \"hello\"")
}
输出:
Say "hello"
只有两个可能值:true 或 false。常用于表示开关状态或条件判断。
fun main() {
val notificationsEnabled = false
println(notificationsEnabled)
println("Are notifications enabled? " + notificationsEnabled)
}
输出:
false
Are notifications enabled? false
在 Kotlin 中,建议遵循以下编码规范,这是 Google 推荐使用并且其他专业开发者也在遵循的一种 Android 代码统一编写方式:
冒号后添加一个空格。
val discount: Double = 0.20
var pet = "Dog"
val sum = 1 + 2
每行代码建议不超过 100 个字符,方便阅读和维护。
编写代码时,建议使用注释说明代码用途,帮助读者理解。
使用 //
,通常在符号后添加一个空格:
// 这是一个注释
height = 1 // 假设初始高度为 1
使用 / ... /,适合超过 100 个字符的长注释:
/*
* 这是一个很长的注释
* 可以占用多行,只需要开始和结束,中间的*是为了好看写的
*/
/*
* 该程序显示用户收件箱中的消息数量
*/
fun main() {
// 创建一个变量表示未读消息数量
var count = 10
println("You have $count unread messages.")
// 将消息数量减少 1
count--
println("You have $count unread messages.")
}
💡 提示:在常见的编辑器中输入注释时,IDE 会提供自动提示和快捷键支持,帮助你快速书写注释。注释里面的*不需要手动写完,编辑器会自动生成,后面章节会详细讲解。现在主要是让大家了解注释的作用。总结
做得很好!您已经了解了 Kotlin 中的变量及其用途,掌握了如何创建、更新和使用变量,尝试了不同的基本数据类型(Int、Double、String、Boolean),并了解了 val
与 var
的区别。
val
用于定义只读变量,一旦赋值不可更改。var
用于定义可变变量,可以更新值。val
。val count: Int = 2
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。