%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 类型。