多行字符串字面量和字符串插值

多行字符串的语法似乎稍显冗长。排除buildIn的静态文本,目前个人能想到大量编写多行字符串字面量有两种情景:

  1. html的模板
  2. 各种着色器语言代码

不论是上述哪一种情况,这种格式的多行字符串似乎都挺降低可读性的。为何不尝试类似Go/JavaScript的多行字符串/字符串插值语法?简单的同时还能增强特殊文本内容的可读性。一个例子是,在vscode中,通过特殊的注释标记,一些插件可以实现js内联的wgsl字符串代码的高亮(甚至是lint)。

或许是这样做对大语言模型有更好的支持?或是大大提升编译速度?

1 个赞
let x = `
  hello 
  world
`

这种形式的多行字符串有几个问题:

  1. 如果从第二行写起,字符串内总是有多余的前缀\n
  2. 在保证缩进的情况下,无法避免字符串的每行有多余的前置空格
  3. 有些语言试图在这个语法的基础上解决以上两个问题,例如根据缩进和排版来自动去除空行和空格,使得多行字符串的内容变的更难以预测

MoonBit的设计做了一些取舍,#|这样的设计解决了上面的问题。对于书写上的不便,建议配合LSP的换行自动追加#|以及编辑器的多光标使用

1 个赞

提个建议,希望IDE多行文本的粘贴也自动追加 #|