跳到内容

代码块格式字符串

代码块可以通过几种方式指定其占位符的值。每个代码块操作只能使用一种样式。

相对参数

将格式字符串中每个占位符的参数值传递给 CodeBlock.add()。在每个示例中,我们生成代码来表示“我吃了 3 个墨西哥卷饼”。

CodeBlock.builder().add("I ate %L %L", 3, "tacos")

位置参数

在格式字符串中的占位符前放置一个整数索引(从 1 开始),以指定要使用的参数。

CodeBlock.builder().add("I ate %2L %1L", "tacos", 3)

命名参数

使用语法 %argumentName:X,其中 X 是格式字符,并调用 CodeBlock.addNamed(),传入一个包含格式字符串中所有参数键的映射。参数名称使用字符 a-zA-Z0-9_,并且必须以小写字母开头。

val map = LinkedHashMap<String, Any>()
map += "food" to "tacos"
map += "count" to 3
CodeBlock.builder().addNamed("I ate %count:L %food:L", map)