多行字符串的语法似乎稍显冗长。排除buildIn的静态文本,目前个人能想到大量编写多行字符串字面量有两种情景:
- html的模板
- 各种着色器语言代码
不论是上述哪一种情况,这种格式的多行字符串似乎都挺降低可读性的。为何不尝试类似Go/JavaScript的多行字符串/字符串插值语法?简单的同时还能增强特殊文本内容的可读性。一个例子是,在vscode中,通过特殊的注释标记,一些插件可以实现js内联的wgsl字符串代码的高亮(甚至是lint)。
或许是这样做对大语言模型有更好的支持?或是大大提升编译速度?
1 个赞
let x = `
hello
world
`
这种形式的多行字符串有几个问题:
- 如果从第二行写起,字符串内总是有多余的前缀
\n
- 在保证缩进的情况下,无法避免字符串的每行有多余的前置空格
- 有些语言试图在这个语法的基础上解决以上两个问题,例如根据缩进和排版来自动去除空行和空格,使得多行字符串的内容变的更难以预测
MoonBit的设计做了一些取舍,#|
这样的设计解决了上面的问题。对于书写上的不便,建议配合LSP的换行自动追加#|
以及编辑器的多光标使用
1 个赞
提个建议,希望IDE多行文本的粘贴也自动追加 #|