我是Swift的新手,具有Ruby背景。我想知道是否有一种方法可以执行以下操作:
def completion_handler response, &block
yield response
end
extracted = proc {|r| puts r}
completion_handler "response", &extracted
response
=> nil
我在搜索时遇到了一些麻烦,因为yield
大多数情况下会调出序列生成器,我不认为这是我现在正在寻找的东西。我主要想知道这是否可行,因为有时我希望能够将块提取到proc对象。在Swift中,闭包对我来说就像一个障碍。是否有类似proc对象的提取?
Swift闭包与Ruby Lambdas非常相似。它们是具有一组定义的参数的对象,这些参数返回到它们的调用范围(与不检查参数计数以及areturn
可以在调用范围内转义的非对象Ruby块或Ruby Procs不同)。
因此,没有真正的对yield
等物。接受闭包参数的Swift函数使用带括号的参数列表显式调用闭包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句