跳到内容

%L 用于字面量

尽管 Kotlin 的字符串模板通常很适合将字面量包含到生成的代码中,KotlinPoet 提供了一种额外的语法,它受到String.format()的启发但不兼容于它。它接受 %L 来在输出中生成一个字面值。这就像 Formatter%s 一样工作。

private fun computeRange(name: String, from: Int, to: Int, op: String): FunSpec {
  return FunSpec.builder(name)
    .returns(Int::class)
    .addStatement("var result = 0")
    .beginControlFlow("for (i in %L..<%L)", from, to)
    .addStatement("result = result %L i", op)
    .endControlFlow()
    .addStatement("return result")
    .build()
}

字面量会直接输出到代码中,不进行任何转义。字面量的参数可以是字符串、基本类型,以及下面描述的一些 KotlinPoet 类型。