📅  最后修改于: 2023-12-03 15:32:30.896000             🧑  作者: Mango
在 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.
在这个示例中,我们将变量 name
和 age
嵌入到字符串中,使用 $
符号将其包含在双引号内。$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 的字符串模板允许您很方便地在字符串中插入变量、表达式和函数调用。这使得字符串处理更加简单方便,并且可以在代码中产生更具可读性的字符串。