本文介绍了+ 不可用:请对混合类型的算术使用显式类型转换或 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 方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!