2.26. String Builder

Instead of formatting strings with variant arguments count function (like printf), Daslang provides String builder functionality out-of-the-box. It is both more readable, more compact and more robust than printf-like syntax. All strings in Daslang can be either string literals, or built strings. Both are written with “”, but string builder strings also contain any expression in curly brackets ‘{}’:

let str1 = "String Literal"
let str2 = "str1={str1}"  // str2 will be "str1=String Literal"

In the example above, str2 will actually be compile-time defined, as the expression in {} is compile-time computable. But generally, they can be run-time compiled as well. Expressions in {} can be of any type, including handled extern type, provided that said type implements DataWalker. All PODs in Daslang do have DataWalker ‘to string’ implementation.

In order to make a string with {} inside, one has to escape curly brackets with ‘':

print("Curly brackets=\{\}")  // prints Curly brackets={}