2016-04-26 12 views
-1

GithubのGoogle Ruby APIクライアントでこのコードを見つけました。珍しいRubyの構文<< ABC - それは何を達成するのですか?

NOT_FOUND_ERROR = <<END 
Could not load the default credentials. Browse to 
https://developers.google.com/accounts/docs/application-default-credentials 
for more information 
END 

私はそれを見ていないし、コンソールでそれをテストしない:

>> NOT_FOUND_ERROR = <<END 
blabla 
END 
=> "blabla\n" 

だから、基本的には文字列を作成する奇妙な方法は何ですか? NOT_FOUND_ERROR = "blabla\n"ではなく、この構文を使用する動機は何ですか?

編集:この質問に「重複の可能性があります」とマークされているので、私はそれが単なるダブではない理由を説明したいと思います。可能な複製であるという質問は、単に特定のルビスクリプトが何をしているのかを尋ねるだけです。このRubyスクリプトには<<ABCという構文も含まれていますが、これは明らかに質問の中核ですが、見つけるのは難しいため実際には役に立ちません。それ以外に、私はさらに進んで、通常の文字列を作成するよりもこの表記法を使用する動機を尋ねます。

答えて

3

これはHEREDOCです。 here(wiki)とhere(Rubyのインスタンス)について詳しく読むことができます。通常は、複数行のテキストをより読みやすくするために使用されるheredocです。

+0

ありがとうございます! – Flip

+0

複数行の文字列には、一重引用符、二重引用符、%q、%Qを使用することもできます。 –

関連する問題