一重引用符と二重引用符で囲まれた文字列の違いは何ですか?


18

一重引用符と二重引用符で囲まれた文字列の違いは何ですか?

変数を文字列内で展開する方法はありますか、または常に次のように結合する必要がありますか? 'Hello, ' . s:name . '!'

回答:


23

一重引用符と二重引用符で囲まれた文字列の唯一の違いは、バックスラッシュに関連しています。改行、ベル、タブなどの特殊文字を表示するには、二重引用符->を使用する必要があります"\n"

単一引用符で囲まれた文字列内で、'\'それ自体=> '\n'は2文字の文字列(バックスラッシュ+ 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'
リュックHermitte
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.