本文介绍了+ 不可用:请对混合类型的算术使用显式类型转换或 Strideable 方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to learn Swift and am looking at an old Generic example that worked in Swift 2

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

现在在 Swift 4 中它会抱怨

Now in Swift 4 it complains

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

为什么会出现此错误以及我做错了什么?

Why am I getting this error and what I am doing wrong?

推荐答案

您可以简单地使用 Strideable.advanced(by:) 而不是使用 + 运算符.

Rather than using the + operator, you can simply use 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

这篇关于+ 不可用:请对混合类型的算术使用显式类型转换或 Strideable 方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-19 01:18