📜  kotlin 字符串模板 - Kotlin (1)

📅  最后修改于: 2023-12-03 15:32:30.896000             🧑  作者: Mango

Kotlin 字符串模板

在 Kotlin 中,字符串模板可用于将表达式嵌入到字符串字面值中。可以使用 $ 符号将变量、函数调用或任何表达式包含在字符串中。

简单示例
val name = "John"
val age = 30
println("My name is $name and I am $age years old.")

输出:

My name is John and I am 30 years old.

在这个示例中,我们将变量 nameage 嵌入到字符串中,使用 $ 符号将其包含在双引号内。$name$age 都被替换为它们的值。如果您需要在字符串中包含 $ 符号本身,可以使用 \$ 转义它。

使用表达式

除了直接引用变量,您还可以在字符串模板中使用表达式。

val a = 5
val b = 7
println("The sum of $a and $b is ${a + b}.")

输出:

The sum of 5 and 7 is 12.

在这个示例中,我们使用 ${a + b} 将表达式和变量嵌入到字符串中。

使用函数

您可以像使用变量一样在字符串模板中使用函数。

fun greet(name: String) = "Hello, $name!"
println(greet("John"))

输出:

Hello, John!

在这个示例中,我们定义了一个简单的函数 greet,它将一个字符串参数嵌入到另一个字符串中。

复杂示例

下面是一个更复杂的示例,其中我们使用字符串模板以更好地格式化一则电子邮件的正文。

data class Email(val sender: String, val recipient: String, val subject: String, val message: String)

fun formatEmail(email: Email): String {
    return """
        From: ${email.sender}
        To: ${email.recipient}
        Subject: ${email.subject}

        ${email.message}
    """.trimIndent()
}

val email = Email("john@example.com", "jane@example.com", "Hello", "How are you?")
println(formatEmail(email))

输出:

From: john@example.com
To: jane@example.com
Subject: Hello

How are you?

在这个示例中,我们定义了一个数据类 Email,它表示一条电子邮件的基本信息。我们还定义了一个函数 formatEmail,将 Email 对象嵌入到一个包含发送者、接收者、主题和消息文本的多行字符串中。使用 trimIndent() 函数可以将每行字符串的缩进空格去除,以便更好地格式化字符串。

结论

Kotlin 的字符串模板允许您很方便地在字符串中插入变量、表达式和函数调用。这使得字符串处理更加简单方便,并且可以在代码中产生更具可读性的字符串。