下面調用| |
約profile
是什麼,它是什麼意思,爲什麼它在do
之後?我認爲do
後跟一個循環塊左右。什麼|變量|語法的意思?
ticks = get_all[0...MAX].map do |profile|
下面調用| |
約profile
是什麼,它是什麼意思,爲什麼它在do
之後?我認爲do
後跟一個循環塊左右。什麼|變量|語法的意思?
ticks = get_all[0...MAX].map do |profile|
它像一個foreach,所以簡檔將是在每個函數的調用的一個不同的值,在每get_all元件中的一個函數調用。
看到這一點:
my_array = [:uno, :dos, :tres]
my_array.each do |item|
puts item
end
謝謝!以及什麼|個人資料|然後? abs()的值? – galaapples
@galaapples編號'| parameter1,parameter2,.. |'僅僅是用來引入*塊參數*的語法,並且與數學運算符無關。我提供了一個有用的搜索短語作爲主要評論。 – user2864740
如果您現在「明白了」,將其標記爲已接受,然後再繼續前進,以免因Google搜索引擎陷入低谷 – AwokeKnowing
它們的語法定義一個塊的一部分。我喜歡解釋它的方式是管道看起來像一張幻燈片,管道內的這些變量「滑動」到它們下面的代碼塊中。
本質上,管道中的變量可用於塊。在迭代的情況下,變量將代表您正在迭代的任何元素。
如果非常有趣,我相信該語法的實際起源是smalltalk – jozefg
我會用這個例子來試圖向你解釋這個概念。
friends = ["James", "Bob", "Frank"]
friends.each { |friend| puts friend }
James
Bob
Frank
所以在這裏,我們有我們的朋友陣容:詹姆斯,鮑勃和弗蘭克。
爲了迭代它們,我們調用數組上的#each方法。該方法將從我的數組中的第一個項目開始,並調用它的塊。
本質上,我正在迭代的項目被傳遞給兩個管道字符中的變量。你可以稱它爲|buddy|
,並將該塊更改爲{ |buddy| puts buddy }
,它仍然會執行相同的操作。
管道字符分隔塊定義的參數列表,就像括號分隔方法定義的參數列表一樣。因此,在此代碼段中:
def foo(bar, baz) end
some_method_that_takes_a_block do |bar, baz| end
圓括號和管道的目的完全相同。
希望這可以在這裏找到答案:http://stackoverflow.com/questions/665576/what-are-those-pipe-symbols-for-in-ruby][1] [1]:HTTP ://sackoverflow.com/questions/665576/what-are-those-pipe-symbols-for-in-ruby –
搜索「ruby教程塊」 – user2864740