<<-在以下方法/上下文中意味着什么?
class_eval <<-RUBY, __FILE__, __LINE__ + 1
def destroy_associations
association(:#{middle_reflection.name}).delete_all(:delete_all)
association(:#{name}).reset
super
end
RUBY
Run Code Online (Sandbox Code Playgroud)
它表示多行字符串的开头,也称为"heredoc".
格式可以是:
<<[ID]
contents
[ID]
Run Code Online (Sandbox Code Playgroud)
要么
<<-[ID]
contents
[ID]
Run Code Online (Sandbox Code Playgroud)
不同之处在于,在第一种情况下,结束[ID]必须位于该行的开头,而在第二种情况下,[ID]可以缩进以具有更清晰的代码.
它是"heredoc"或多行字符串.这<<-RUBY是开始,而RUBY它本身就是结束.
http://blog.jayfields.com/2006/12/ruby-multiline-strings-here-doc-or.html
它描述了这里文档的开头.你可能会感到困惑的是,这里的文件从下一行开始; 该行中该表达式后面的所有内容都是here文档的延续.因此,鉴于此处文档的内容表示为heredoc,表达式相当于:
class_eval heredoc, __FILE__, __LINE__ + 1
Run Code Online (Sandbox Code Playgroud)
这意味着在类环境中评估here文档的内容,并且每当引发错误时,将该位置与当前文件(__FILE__)相关联,并且here文档的第一行(即开头之后的行__LINE__ + 1)应该是算作第1行.
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |