Swift运营商身份检查

时间:2018-05-15 16:32:30

标签: swift collections operators identity swift-extensions

运营商身份检查

Swift 4.1,Xcode 9.3

我知道在Swift中使用===运算符来检查操作数的身份。我有一种情况,我想检查我的操作数的身份与操作员的身份 - 我需要检查我的operation参数 +还是{ {1}}。

我想做什么

-

澄清点: 我想知道如何检查extension Collection where Element: Numeric { func total(by operation: (Element, Element) -> Element) -> Element { return (operation === + || operation === -) ? reduce(0, operation) : reduce(1, operation) // For '+', '-', you need to use reduce with the initial value of 0 // For '*', '/', you need to use reduce with the initial value of 1 } } 的身份,但Swift只将运营商视为运营商而非其基础功能。

理想用法

operation

最终问题

如何查看let arr = [1, 2, 3, 4] let totalSum = arr.total(by: +) //10 let totalProduct = arr.total(by: *) //24 的身份(请参阅其基础功能)?

0 个答案:

没有答案