ZetCode

Kotlin 变量

最后修改于 2024 年 1 月 29 日

本文介绍了如何在 Kotlin 中使用变量。

Kotlin 是一种静态类型的编程语言,运行在 Java 虚拟机上。每个表达式的类型在编译时已知。

变量是存储数据的地方。一个变量有一个名称和一个数据类型。数据类型决定了可以分配给变量的值。 Kotlin 有以下基本类型:Double, Float, Long, Int, ShortByte

Kotlin 变量

Kotlin 中有两种类型的变量:只读和可变。只读变量(或常量)用 val 声明,可变变量用 var 声明。

Kotlin 数据类型推断

Kotlin 可以从赋值的右侧推断出变量的数据类型。只有在延迟赋值时,数据类型才是必需的。

val word = "cloud"
val word: String = "cloud"

在 Kotlin 中,数据类型跟随标识符和冒号。

Kotlin 变量示例

以下示例创建了两个变量。

KotlinVariables.kt
package com.zetcode

fun main() {

    val word = "influence"
    println(word)

    var word2 = "sunshine"
    println(word2)
    
    word2 = "rain"
    println(word2)
}

有一个只读变量和一个可变变量。

val word = "influence"

使用 val 关键字,我们定义一个只读变量。它的值不能在程序后面更改。数据类型是 String,它从赋值右侧的字符串字面量推断而来。

var word2 = "sunshine"
println(word2)

word2 = "rain"
println(word2)

使用 var 关键字,我们定义一个可变变量。该变量的值可以在程序的后面进行修改。

influence
sunshine
rain

Kotlin 变量延迟赋值

在下面的示例中,我们在声明变量后延迟赋值。

KotlinVariableDeffered.kt
package com.zetcode

fun main() {

    val input: String?

    print("Enter something: ")
    input = readLine()

    println(input)
}

该示例从用户那里读取输入。

val input: String?

我们声明一个 String 类型的数据的变量。尾部的问号告诉 Kotlin 该变量可能为 null。这次必须显式地提供数据类型。

print("Enter something: ")

我们向用户打印一个提示。

input = readLine()

使用 readLine 从用户读取输入。此时,我们已经给 input 变量赋值了。

Kotlin 属性

在类中创建的变量是属性。只读变量具有默认的访问器,而可变变量具有访问器和修改器。

KotlinProperties.kt
package com.zetcode

class Person {

    var name:String = ""
    var age:Int = 0

    override fun toString(): String {
        return "Person(name='$name', age=$age)"
    }
}

fun main() {

    val p1 = Person()
    p1.name = "Peter"
    p1.age = 23

    println(p1)
}

在这个例子中,我们有一个 Person 类,它有两个属性:nameage

var name:String = ""
var age:Int = 0

我们有两个可变属性。

override fun toString(): String {
    return "Person(name='$name', age=$age)"
}

我们重写了 toString 方法以获取 Person 对象的字符串表示形式。

val p1 = Person()
p1.name = "Peter"
p1.age = 23

创建了一个 Person 对象。我们设置了这两个属性。

Person(name='Peter', age=23)

来源

Kotlin 基本语法

在本文中,我们使用了 Kotlin 中的变量。

作者

我的名字是 Jan Bodnar,我是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。我拥有超过十年的编程教学经验。

列出 所有 Kotlin 教程