2.27. String Builder

Daslang 不是使用变体参数 count 函数(如 printf)格式化字符串,而是提供开箱即用的字符串生成器功能。 它比类似 printf 的语法更具可读性、更紧凑、更健壮。 Daslang 中的所有字符串都可以是字符串文本,也可以是 built strings。 两者都用 “” 书写,但字符串生成器字符串在大括号 ‘{}’ 中也包含任何表达式:

let str1 = "String Literal"
let str2 = "str1={str1}"  // str2 将是 “str1=String Literal”

在上面的示例中,str2 实际上是编译时定义的,因为 {} 中的表达式是编译时可计算的。 但通常,它们也可以进行运行时编译。 {} 中的表达式可以是任何类型,包括处理的 extern 类型,前提是所述类型实现 DataWalker`。 Daslang 中的所有 POD 都有 DataWalker` to string 实现。

为了制作一个带有 {} 的字符串,必须用 ‘\’ 转义大括号:

print("Curly brackets=\{\}")  // 打印 Curly brackets={}