Jaka jest różnica między ciągami pojedynczymi i podwójnymi?


18

Jaka jest różnica między ciągami pojedynczymi i podwójnymi?

Czy istnieje sposób na rozwinięcie zmiennej w ciągu lub czy zawsze muszą być połączone w następujący sposób: 'Hello, ' . s:name . '!'

Odpowiedzi:


23

Jedyna różnica między łańcuchem pojedynczym i podwójnym jest związana z odwrotnym ukośnikiem. Aby wyświetlić znaki specjalne, takie jak znak nowej linii, dzwonki, tabulatory itp., Musisz użyć cudzysłowów -> "\n".

W ciągu pojedynczego cudzysłowu, '\'sama = = '\n'jest ciągiem dwóch znaków (ukośnik odwrotny + n). W ramach podwójnych cudzysłowów musisz je podwoić -> "\\", co sprawia, że ​​definiowanie wyrażeń regularnych jest niepraktyczne.

Jeśli chodzi o rozwinięcie łańcucha, masz kilka możliwości:

  • 'Hello, ' . s:name . '!'
  • join(['Hello, ', s:name, '!'], '') - których nigdy nie używamy
  • printf('Hello %s!', s:name)
  • lh#fmt#printf('Hello %1!', s:name)- z lh-vim-lib, gdy nie chcemy wiedzieć o typach i kiedy nie musimy formatować pól, ale kiedy chcemy użyć formatów takich jak: 'Hello %1. How are you doing %1 this %2'.

Czy można zawrzeć 'w ciągu jednego cudzysłowu?
Tom Hale,

2
@TomHale. Tak to jest. Podwój to. -> 'foo''bar'lub użyj obu rodzajów cytatów:'foo'."'".'bar'
Luc Hermitte
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.