如何在Nim格式化字符串的插值表达式中创建字符串?
如何在Nim的字符串插值表达式中使用空格作为join分隔符?
你遇到的问题核心是类型不匹配和语法误用:
- 单引号
' '在Nim中表示单个字符(char类型),但join()方法要求传入字符串(string类型)参数,直接传' '会因类型不兼容报错。 - 反引号
` `是用于定义特殊标识符(比如含空格的变量名)的语法,并非用来创建字符串,因此这种写法无效。
可行的解决方法:
- 在表达式内用双引号定义空格字符串
外层插值用&"..."包裹,内层可以直接用双引号定义空格字符串,不会产生语法冲突:
echo &"verse #{v.number}: {v.translated} ({v.words.map(w => w.greek).join(" ")})"
- 提前定义空格常量
如果觉得插值内写双引号不够直观,可先定义字符串常量再引用:
const space = " " echo &"verse #{v.number}: {v.translated} ({v.words.map(w => w.greek).join(space)})"
- 将字符转换为字符串
用$操作符把空格字符转成字符串后传给join():
echo &"verse #{v.number}: {v.translated} ({v.words.map(w => w.greek).join($' ')})"
内容的提问来源于stack exchange,提问作者Alexandre Daubricourt
相关产品推荐
相关产品推荐

