2011-03-10 129 views
2

任何人都可以向我解釋在ruby中的「左移」語法是什麼意思?在Ruby中左移意味着什麼?

舉例來說,我有這個

File.open(folder, 'w'){ |f| f << datavalue } 

我知道它的意思寫每個datavalue到文件夾,但|f| f << datavalue部分沒有道理給我。爲什麼f在括號內,相對於左移並將數據值寫入文件夾?

基本上,我不「噸理解這一行

{ |f| f << datavalue } 
+1

我想你應該考慮閱讀一些Ruby語言的介紹。有很多針對初學者的Ruby教程。這將有助於你理解你所得到的答案。 http://stackoverflow.com/questions/5259332/ruby-write-value-from-sql-table-to-a-tmp-folder –

回答

4

File.open(folder, 'w'){ |f| f << datavalue }的含義是相同的文字:

File.open(folder, 'w') do |f| 
    f << datavalue 
end 

兩者都是紅寶石塊表示法的實例中的塊的Ruby是匿名方法,塊預期的變量是在豎線之間聲明的,在這種情況下,變量f表示通過File.open命令返回的文件對象

至於<<運營商。這裏它被用作連接器。我相信它在對象(如字符串,數組,在這種情況下是一個文件)上使用時稱爲附加運算符。例外情況是,如果對象是數字,那麼它將成爲左移操作符來移位數字的位。

0
some_text = "world!" 
hello = "Hello, " 

hello << some_text 

puts hello # prints "Hello, world!"