Qual è la differenza tra stringhe tra virgolette singole e doppie?


18

Qual è la differenza tra stringhe tra virgolette singole e doppie?

C'è un modo per espandere una variabile all'interno di una stringa o devono sempre essere uniti come: 'Hello, ' . s:name . '!'

Risposte:


23

L'unica differenza tra stringa tra virgolette singole e doppie è correlata alla barra rovesciata. Per visualizzare caratteri speciali come newline, campane, tab, ecc., Devi usare le virgolette doppie -> "\n".

All'interno di una stringa a virgoletta singola, '\'è stesso => '\n'è una stringa di due caratteri (una barra rovesciata + n). Tra virgolette doppie, devi raddoppiarlo -> "\\", il che li rende poco pratici per definire le regex.

Per quanto riguarda l'espansione della stringa, hai alcune scelte:

  • 'Hello, ' . s:name . '!'
  • join(['Hello, ', s:name, '!'], '') - che non usiamo mai
  • printf('Hello %s!', s:name)
  • lh#fmt#printf('Hello %1!', s:name)- da lh-vim-lib, quando non vogliamo conoscere i tipi e quando non abbiamo bisogno di formattare i campi, ma quando vogliamo usare formati come: 'Hello %1. How are you doing %1 this %2'.

È possibile includere 'all'interno di una stringa a virgoletta singola?
Tom Hale,

2
@TomHale. Sì. Raddoppia. -> 'foo''bar'oppure usa entrambi i tipi di virgolette:'foo'."'".'bar'
Luc Hermitte,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.