文章目录
- 一、变量声明
- 二、只读变量
- 三、类型推断
- 四、编译时常量
- 五、Kotlin 字节码查看面板
- 六、Kotlin 引用数据类型
一、变量声明
变量声明格式 :
变量定义关键字 变量名 : 变量类型 = 变量值
实际示例 :
var number : Int = 0
- 变量定义关键字 :
var - 变量名 :
number - 变量类型 :
Int - 赋值运算符 :
= - 变量值 :
0
代码示例 :
fun main() {
var number: Int = 0
println(number)
}执行结果 :

二、只读变量
使用 var 关键字 , 可以 声明一个可修改的变量 ;
使用 val 关键字 , 可以 声明一个只读变量 , 该变量第一次赋值后 , 不允许修改 ;
如果一个 var 类型的可修改变量 , 再初次赋值后 , 在整个生命周期内没有进行修改 , Kotlin 会建议将该变量使用 val 进行修饰 ;
提示如下信息 :
Variable is never modified and can be declared immutable using 'val'

将 var number: Int = 0 修改为 val number: Int = 0 后 , 也就是将 可修改变量 修改为 只读变量

三、类型推断
声明变量时 并指定了变量的具体类型 , 如果对变量再进行赋值 , 会提示
Explicitly given type is redundant here
警告信息 , 下图中 val number: Int = 0 代码中的 Int 类型是灰色的 , 说明该声明是没必要的 ;
选择 " Remove explicit type specification " 移除显示的类型声明 选项 , 可以将 Int 类型声明移除 ;

最终代码如下 :
fun main() {
val number = 0
println(number)
}执行结果 : 此时代码没有任何警告 , 是 Kotlin 官方推荐的代码 ;

四、编译时常量
编译时常量 是在 编译阶段 进行赋值的 ;
函数 在 编译时不会被调用 , 在运行时才会调用 , 因此 编译时常量 必须在 函数之外 进行声明和赋值 ;
编译时常量 类型 : 编译时常量只能是如下几个基本数据类型 , 不能是其它类型 ;
- Boolean
- Char
- Byte
- Short
- Int
- Long
- Float
- Double
- String
编译时常量 声明格式 :
const val 常量名 = 常量值
代码示例 :
const val COUNT = 100
fun main() {
val number = COUNT
println(number)
}
执行结果 :

五、Kotlin 字节码查看面板
在上一个章节 , 使用 const val COUNT = 100 代码定义了一个编译时 常量 , 下面通过分析 Kotlin 字节码数据 , 分析该编译时常量信息 ;
连按两下 Shift 键 , 弹出搜索框 ,

在搜索框中搜索 " Show Kotlin ByteCode " , 然后进入到该选项 ,

此时 , 在右侧就会同时显示该 Kotlin 文件的字节码信息 , const val COUNT = 100 对应的字节码信息是 public final static I COUNT = 100 ;

六、Kotlin 引用数据类型
Java 中存在 基本数据类型 与 引用类型 ,
- 基本数据类型
- 引用类型
在 Kotlin 中 , 只有 引用数据类型 , 没有 基本数据类型 ;
在编译时 , 编译器 会将 Kotlin 中与 Java 基本数据类型相对应 的类型 自动转为 基本数据类型 , 这样可以提高执行效率 ;
如下图中 , Kotlin 中的 val number: Int = COUNT 只读变量 是 Kotlin 中的 Int 引用类型 , 但是在 字节码文件中 , 对应的字节码为 LOCALVARIABLE number I L1 L6 0 , 其中 I 表示 Java 中的 基本数据类型 int ;











