Есть ли какие-либо “простые” объяснения того, какой procs и лямбды находятся в Ruby?

J

   fact=. verb define
*/ >:@i. y
)
5
задан Cœur 24 April 2017 в 16:02
поделиться

1 ответ

Лямбды (которые существуют и на других языках) похожи на специальные функции, созданные только для простого использования, а не для выполнения некоторых сложных действий.

Когда вы используете такой метод, как Array # collect , который принимает блок в {} , по сути, вы создаете лямбда / proc / block только для использования этого метода.

a = [1, 2, 3, 4]
# Using a proc that returns its argument squared
# Array#collect runs the block for each item in the array.
a.collect {|n| n**2 } # => [1, 4, 9, 16]
sq = lambda {|n| n**2 } # Storing the lambda to use it later...
sq.call 4 # => 16

См. Анонимные функции в Википедии и некоторые другие вопросы SO для нюансов лямбда vs. Proc .

5
ответ дан 14 December 2019 в 19:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: