我正在使用 each 和 yield 做一个实验
我几乎完成了实验,并且对它有所了解,只是需要帮助才能完全掌握这一行。
产量(集合[i])
def my_collect(array)
i = 0
collect = []
while i < array.length
collect << yield(array[i])
i+=1
end
collect
end
最佳答案
yield
关键字(与 block 相关联)允许在方法调用期间传递一组附加指令。
此机制允许您根据需要自定义方法。
什么是 block ?
block 是 Ruby 方法语法的一部分。 这意味着当一个 block 被 Ruby 解析器识别时,它将与调用的方法相关联,并逐字替换方法中的 yield。
我还建议您将 while
循环替换为 .each
def my_collect(array)
collect = []
array.each { |a| collect << yield(a) }
collect
end
my_collect([1, 2, 3]) { |n| n + 1 } produces -> [2, 3, 4]
关于ruby-on-rails - 有人可以帮我理解这一行代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57985329/