83 结果构建器中的控制流
只有选中的 if 分支提供一个元素。for 循环每次迭代各提供一个元素,最终结果保持顺序。
norm
import std.build.BuildWith
import std.build.ResultBuilder
class Words implements ResultBuilder<String, String> {
private String text = ""
Void add(String value) { text = text + value }
String finish() { text }
}
String words(@BuildWith(Words.class) Function<String()> content) { content() }
main() {
printLine(words {
if true { "a" } else { "wrong" }
for letter : ["b", "c"] { letter }
})
}预期输出:
text
abc动手试试:把条件改成 false,预测生成的文本。
精确规则:参考。