Apa perbedaan antara string kutipan tunggal dan ganda?


18

Apa perbedaan antara string kutipan tunggal dan ganda?

Apakah ada cara untuk membuat variabel diperluas di dalam string, atau apakah mereka selalu perlu digabungkan seperti: 'Hello, ' . s:name . '!'

Jawaban:


23

Satu-satunya perbedaan antara string yang dikutip tunggal dan ganda terkait dengan backslash. Untuk menampilkan karakter khusus seperti baris baru, bel, tab, dll, Anda perlu menggunakan tanda kutip ganda -> "\n".

Dalam string yang dikutip tunggal, '\'itu sendiri => '\n'adalah string dua karakter (a backslash + n). Di dalam tanda kutip ganda, Anda harus menggandakannya -> "\\", yang membuatnya tidak praktis untuk mendefinisikan regex.

Mengenai ekspansi string, Anda memiliki beberapa pilihan:

  • 'Hello, ' . s:name . '!'
  • join(['Hello, ', s:name, '!'], '') - yang tidak pernah kita gunakan
  • printf('Hello %s!', s:name)
  • lh#fmt#printf('Hello %1!', s:name)- dari lh-vim-lib, ketika kita tidak ingin tahu tentang jenis, dan kapan kita tidak perlu memformat bidang, tetapi ketika kita ingin menggunakan format seperti: 'Hello %1. How are you doing %1 this %2'.

Apakah mungkin untuk memasukkan ke 'dalam string yang dikutip tunggal?
Tom Hale

2
@ TomHale. Ya itu. Gandakan itu. -> 'foo''bar', atau gunakan kedua jenis kutipan:'foo'."'".'bar'
Luc Hermitte
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.