我有一个清单:
list = ["mango", "apple", "pearl", "peach"]
Run Code Online (Sandbox Code Playgroud)
我需要使用yield这行代码:
answer = myIndexOf(list) {|e| e == "apple"}
Run Code Online (Sandbox Code Playgroud)
返回值1,该值是"apple"数组中的索引.
我有这个,但我不明白yield.
def myIndexOf(list)
yield answer if block_given?
result = list.index(answer)
return answer
end
Run Code Online (Sandbox Code Playgroud)
任何人都可以对此有所了解吗?
理解产量/块实际上非常简单.只需将块视为方法和yield调用这些方法的方法.
想象一下,你有这个,而不是阻止
def is_this_the_right_item?(item)
item == "apple"
end
def myIndexOf(a_list)
# your implementation goes here
end
answer = myIndexOf(list)
Run Code Online (Sandbox Code Playgroud)
你可以编写这个实现的代码myIndexOf吗?它根本不涉及屈服.当你做,你只要把块回的调用myIndexOf,并更换所有通话is_this_the_right_item?使用yield.