Kotlin 中声明常量和变量的方式与 Java 的差别较大,完整的声明格式是:java
val|var 变量名[: 变量类型][= 初始化赋值]
完整的声明分为四个部分:app
val 或 var:不可省略。ide
val 声明常量,只能够赋值一次;var 声明变量,能够屡次赋值。spa
建议尽可能使用 val,能不使用 var 就不使用 var。在使用 IDEA 编写 Kotlin 程序时,若是声明了 var 变量而没有改变它的值,就会提示你把 var 改为 val。这里体现了 Kotlin 语言追求的价值:“清楚地说明每个要素,避免由于混淆而出现错误”,因此要求变量能不变就不变,以避免出现没必要要的错误。orm
val a = 1 //定义常量 a,赋值为 1a = 1 + 1 //编译错误,val 声明的常量只能赋值一次var b = 10 //定义变量 b,赋值为 10b = 1 + 1 //将 b 从新赋值为 2
变量名:不可省略。ci
Kotlin 的命名风格与 Java 相同,变量名应该使用骆峰法命名,首字母小写,以后每一个单词首字母大写,不使用下划线分隔单词。it
val anInt = 1val aString = "Hello World"
[: 变量类型]:当有初始化赋值时可省略。console
声明变量的类型用英文冒号表示,放在变量名后,能够是 Kotlin 和 Java 中的引用类型。为何必定要是引用类型呢?由于 Kotlin 抛弃了 Java 中的基本数据类型,全部数字类型都是引用类型。编译
若是没有指定数据类型,Kotlin 会根据后面的初始化赋值自动推断数据类型。class
//定义一个 Kotlin.Int 类型的变量并赋为 1,这个类型对应 Java 中的 int 类型val intKotlin: Int = 1val intJava: int //编译错误,不能定义为 Java 中的基本数据类型val listJava: List<String> //定义一个 Java 中的引用类型变量val intInfferred = 1 //根据赋值自动推断为 Kotlin.Int 类型
[= 初始化赋值]:当指定了数据类型时可省略。
一个表达式,不能与指定的变量类型冲突。
val d: Int = "String" //编译错误,表达式类型与声明的变量冲突