val
vs var
val
:不可变变量(只读),类似 Java 的 final
var
:可变变量val name = "Kotlin" // 类型推断为 String
var age = 25 // 类型推断为 Int
// name = "Java" // 编译错误:Val cannot be reassigned
age = 26 // 合法操作
val score: Double = 95.5
var isStudent: Boolean = true
类型 | 位宽 | 范围 | 示例 |
---|---|---|---|
Byte | 8 | -128 ~ 127 |
|
Short | 16 | -32768 ~ 32767 |
|
Int | 32 | -2^31 ~ 2^31-1 |
|
Long | 64 | -2^63 ~ 2^63-1 |
|
Float | 32 | 约±3.4e38 |
|
Double | 64 | 约±1.7e308 |
|
注意:Kotlin 中没有隐式类型转换,必须显式转换:
val numInt: Int = 100
val numLong: Long = numInt.toLong() // 正确
// val numLong: Long = numInt // 错误
val isTrue: Boolean = true
val isAdult = age >= 18 // 推断为 Boolean
使用单引号,支持 Unicode:
val letter: Char = 'A'
val unicodeChar = '\u0041' // 'A'
// 普通字符串
val message = "Hello, $name! Age is ${age + 1}"
// 多行文本
val text = """
First line
Second line
Third line
""".trimIndent()
// 创建方式1:arrayOf
val numbers = arrayOf(1, 2, 3)
// 创建方式2:工厂函数
val zeros = Array(3) { 0 } // [0, 0, 0]
// 访问元素
println(numbers[0]) // 输出 1
更高效,避免装箱拆箱:
val intArray: IntArray = intArrayOf(1, 2, 3)
val charArray = charArrayOf('a', 'b', 'c')
所有类的超类(类似 Java 的 Object):
val anyValue: Any = 42 // 可接受任意类型
相当于 void
,用于无返回值函数:
fun printMessage(): Unit {
println("This returns Unit")
}
表示永不返回的函数:
fun fail(): Nothing {
throw RuntimeException("Error occurred")
}
when (val obj: Any = "Kotlin") {
is String -> println(obj.length) // 自动转换为 String
is Int -> println(obj + 1)
}
val str: String? = "123"
val num: Int? = str as? Int // 安全转换,失败返回 null
特性 | Kotlin | Java |
---|---|---|
变量声明 |
| 显式类型声明 |
空安全 | 内置( | 需额外注解 |
基本类型 | 全对象化 | 原始类型 + 包装类 |
数组 |
| 单一数组类型 |
建议在实际编码中充分利用类型推断和安全特性,写出更简洁、安全的 Kotlin 代码。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有