操作符作为Swift中的回调函数

时间:2016-02-14 07:23:57

标签: swift callback operators

在Swift中,运算符被声明为函数。这是否意味着它们也可以用作回调函数?如果是这样,怎么样?如果没有,为什么?

理念是,根据两个不同数字的值,对它们应用不同的运算符。

1 个答案:

答案 0 :(得分:1)

在Swift函数中是第一类类型,你可以将它们作为参数传递给期望它们的其他函数。

回调只不过是另一个函数的参数。

将所有内容放在一起意味着,只要其类型兼容,就可以使用运算符作为回调。

例如,你可以这样做:

[1, 2, 3, 4].reduce(0, combine: +)
// => 10

这是可能的,因为+的类型为(Int, Int) -> Int,在combine:数组上调用时,reduce Int func foo(a: Int, f: (Int, Int) -> Int) -> Int { return { a, f in return f(a, 42) } } foo(1, -) // => 41 参数的预期类型匹配

另一个例子:

require