+不可用:请对混合型算术

时间:2017-10-19 21:41:22

标签: swift swift4

我正在尝试学习Swift,并且正在研究一个在Swift 2中工作的旧通用示例

func increment<T: Strideable>(number: T) -> T {
    return number + 1
}

现在在Swift 4中抱怨

'+' is unavailable: Please use explicit type conversions or Strideable methods for mixed-type arithmetics

为什么我会收到此错误以及我做错了什么?

2 个答案:

答案 0 :(得分:17)

您可以简单地使用+

,而不是使用Strideable.advanced(by:)运算符
func increment<T: Strideable>(number: T) -> T {
    return number.advanced(by: 1)
}

increment(number: 2) //returns 3
increment(number: 2.5) //returns 3.5

答案 1 :(得分:0)

在Swift 4中使用

.advanced(按:1)

为此,请参考URl:-https://developer.apple.com/documentation/swift/strideable