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


18

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

有没有一种方法可以让变量在字符串中扩展,还是总是需要像这样将它们连接起来: 'Hello, ' . s:name . '!'

Answers:


23

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

在单引号字符串中,'\'is本身=> '\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' :这样的格式时。

是否可以'在单引号内包含字符串?
汤姆·黑尔

2
@TomHale。是的。加倍。-> 'foo''bar',或同时使用两种引号:'foo'."'".'bar'
Luc Hermitte
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.