我正在使用每个和产量进行实验
我几乎完成了实验,并且了解了一下,只是需要帮助才能完全掌握这一点。
yield(collection [i])
def my_collect(array)
i = 0
collect = []
while i < array.length
collect << yield(array[i])
i+=1
end
collect
end
答案 0 :(得分:3)
yield
关键字(与块关联)允许在方法调用期间传递一组附加指令。
此机制使您可以根据需要自定义方法。
什么是封锁?
块是Ruby方法语法的一部分。 这意味着,当Ruby解析器识别出一个块时,该块将与调用的方法相关联,并从字面上替换该方法中的yields。
我还建议您将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]