4. 字符串模板

任务说明

本案例要求使用 Kotlin 字符串模板,将变量与表达式直接嵌入字符串字面量中,生成动态字符串。你需要掌握 $变量 与 ${表达式} 两种模板语法,并理解转义与嵌套引用的处理方式。

核心实现

fun main() {
    // 基础变量嵌入
    val userName = "Kotlin"
    val version = 2.1
    println("语言: $userName, 版本: $version")

    // 表达式模板(需用花括号包裹)
    val price = 25.0
    val quantity = 3
    println("总价: ${price * quantity} 元")

    // 带方法调用的模板
    val message = "Hello World"
    println("大写: ${message.uppercase()}")

    // 复杂表达式:条件判断
    val score = 85
    println("成绩等级: ${if (score >= 60) "及格" else "不及格"}")

    // 转义与嵌套引号
    println("显示美元符号: \$price 原值 $price")
    println("嵌套引号: ${"外层".length} 个字符")
}

关键语法说明

  • 简单变量:$变量名 直接替换变量值,变量名只能包含字母、数字和下划线。
  • 任意表达式:${...} 可嵌入方法调用、算术运算、条件判断等,花括号内可包含引号字符串。
  • 美元符号转义:使用 \$ 输出字面量美元符号,避免被解析为模板起始符。

运行与验证

  1. 将上述代码保存为 StringTemplate.kt。
  2. 在命令行执行 kotlinc StringTemplate.kt -include-runtime -d app.jar 编译,再运行 java -jar app.jar;或直接在 IDE 中运行 main()。
  3. 观察控制台输出,应依次显示:
语言: Kotlin, 版本: 2.1
总价: 75.0 元
大写: HELLO WORLD
成绩等级: 及格
显示美元符号: $price 原值 25.0
嵌套引号: 4 个字符

判定标准:输出与上述预期完全一致,且每行均通过字符串模板生成(非字符串拼接),即视为通过。

字符串模板解析流程 原始字符串 "总价: ${price * quantity}" 含 $变量 与 ${表达式} 模板解析器 识别 $ 起始符 区分变量/表达式 表达式求值 price=25.0, quantity=3 25.0 * 3 = 75.0 动态字符串结果 "总价: 75.0 元" 验证点:输出值由模板动态计算,非硬编码 修改 price 或 quantity 后重新运行,输出应同步变化