Sự khác biệt giữa các chuỗi trích dẫn đơn và đôi là gì?


18

Sự khác biệt giữa các chuỗi trích dẫn đơn và đôi là gì?

Có cách nào để có được một biến được mở rộng bên trong một chuỗi hay chúng luôn cần được nối như sau: 'Hello, ' . s:name . '!'

Câu trả lời:


23

Sự khác biệt duy nhất giữa chuỗi trích dẫn đơn và kép có liên quan đến dấu gạch chéo ngược. Để hiển thị các ký tự đặc biệt như dòng mới, chuông, tab, v.v., bạn cần sử dụng dấu ngoặc kép -> "\n".

Trong một chuỗi trích dẫn đơn, '\'chính nó => '\n'là một chuỗi hai ký tự (dấu gạch chéo ngược + n). Trong dấu ngoặc kép, bạn phải nhân đôi nó -> "\\", điều này làm cho chúng không thực tế để xác định regexes.

Về mở rộng chuỗi, bạn có một vài lựa chọn:

  • 'Hello, ' . s:name . '!'
  • join(['Hello, ', s:name, '!'], '') - mà chúng tôi không bao giờ sử dụng
  • printf('Hello %s!', s:name)
  • lh#fmt#printf('Hello %1!', s:name)- từ lh-vim-lib, khi chúng tôi không muốn biết về các loại và khi chúng tôi không cần định dạng các trường, nhưng khi chúng tôi muốn sử dụng các định dạng như: 'Hello %1. How are you doing %1 this %2'.

Có thể bao gồm 'bên trong một chuỗi trích dẫn?
Tom Hale

2
@TomHale. Vâng, đúng vậy. Nhân đôi nó. -> 'foo''bar'hoặc sử dụng cả hai loại trích dẫn:'foo'."'".'bar'
Luc Hermitte
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.