任何人都可以向我解释在ruby中的“左移”语法是什么意思?在Ruby中左移意味着什么?
举例来说,我有这个
File.open(folder, 'w'){ |f| f << datavalue }
我知道它的意思写每个datavalue到文件夹,但|f| f << datavalue
部分没有道理给我。为什么f在括号内,相对于左移并将数据值写入文件夹?
基本上,我不“吨理解这一行
{ |f| f << datavalue }
任何人都可以向我解释在ruby中的“左移”语法是什么意思?在Ruby中左移意味着什么?
举例来说,我有这个
File.open(folder, 'w'){ |f| f << datavalue }
我知道它的意思写每个datavalue到文件夹,但|f| f << datavalue
部分没有道理给我。为什么f在括号内,相对于左移并将数据值写入文件夹?
基本上,我不“吨理解这一行
{ |f| f << datavalue }
File.open(folder, 'w'){ |f| f << datavalue }
的含义是相同的文字:
File.open(folder, 'w') do |f|
f << datavalue
end
两者都是红宝石块表示法的实例中的块的Ruby是匿名方法,块预期的变量是在竖线之间声明的,在这种情况下,变量f
表示通过File.open命令返回的文件对象
至于<<
运营商。这里它被用作连接器。我相信它在对象(如字符串,数组,在这种情况下是一个文件)上使用时称为附加运算符。例外情况是,如果对象是数字,那么它将成为左移操作符来移位数字的位。
some_text = "world!"
hello = "Hello, "
hello << some_text
puts hello # prints "Hello, world!"
我想你应该考虑阅读一些Ruby语言的介绍。有很多针对初学者的Ruby教程。这将有助于你理解你所得到的答案。 http://stackoverflow.com/questions/5259332/ruby-write-value-from-sql-table-to-a-tmp-folder –