.. _string_builder: ============== String Builder ============== .. index:: single: 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={}