单引号和双引号的字符串有什么区别?

是否有一种方法可以使变量在字符串内扩展,还是始终需要像这样连接它们:'Hello, ' . s:name . '!'

#1 楼

单引号和双引号字符串之间的唯一区别与反斜杠有关。要显示特殊字符,例如换行符,铃声,制表符等,您需要使用双引号-> "\n"

在单引号字符串中,'\'本身就是=> '\n'是两个字符的字符串(反斜杠+ n)。在双引号中,您必须将其加倍-> "\",这使它们在定义正则表达式时不切实际。

关于字符串扩展,您有几种选择:


'Hello, ' . s:name . '!'

join(['Hello, ', s:name, '!'], '')-我们从不使用
printf('Hello %s!', s:name)

lh#fmt#printf('Hello %1!', s:name)-来自lh-vim-lib,当我们不想了解类型,不需要格式化字段时,但是当我们想使用类似以下格式的时候: 'Hello %1. How are you doing %1 this %2'。


评论


是否可以在单引号字符串中包含'?

–汤姆·黑尔
16/09/28'2:41

@TomHale。是的。加倍。 ->'foo'bar',或同时使用两种引号:'foo'。“'”。'bar'

–卢克·赫米特(Luc Hermitte)
16-09-28在7:40