gpt4 book ai didi

ruby - 我如何使用 `yield` ?

转载 作者:数据小太阳 更新时间:2023-10-29 08:19:34 29 4
gpt4 key购买 nike

我有一个列表:

list = ["mango", "apple", "pearl", "peach"]

我需要使用 yield 以便这行代码:

answer = myIndexOf(list) {|e| e == "apple"}

返回值1,它是"apple"在数组中的索引。

我有这个,但我不明白yield

def myIndexOf(list)  
yield answer if block_given?
result = list.index(answer)
return answer
end

任何人都可以阐明这一点吗?

最佳答案

了解 yield/blocks 其实很简单。只需将 block 视为方法,将 yield 视为调用这些方法的方式即可。

想象一下,你有这个而不是 block

def is_this_the_right_item?(item)
item == "apple"
end

def myIndexOf(a_list)
# your implementation goes here
end

answer = myIndexOf(list)

你能为 myIndexOf这个实现编写代码吗?它根本不涉及屈服。完成后,只需将该 block 返回到 myIndexOf 的调用,并将所有对 is_this_the_right_item? 的调用替换为 yield

关于ruby - 我如何使用 `yield` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45394198/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com