2016-04-26 27 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脚本的作用。这个Ruby脚本还包含<<ABC语法,这显然是问题的核心,但它不是很有用,因为它很难找到。除此之外,我还会进一步探讨使用这种符号创建正常字符串的动机。

回答

3

这是HEREDOC。你可以阅读更多关于here(wiki)和here(Ruby实例)。通常使用heredocs来提高多行文本的可读性。

+0

好的,谢谢! – Flip

+0

您还可以对多行​​字符串使用单引号,双引号,%q和%Q。 –

相关问题