Swift 4:适用于所有类型的Ints和浮点数的数组

Ale*_*erd 3 arrays ios swift swift4

我有一个程序,可以处理所有类型的Ints和浮点指针值类型

有没有办法创建将包含所有这些值的数组?

我试图通过协议来做到这一点并使用它们扩展Int和Double但由于Swift中的协议兼容性限制(或类似的东西)没有运气

protocol ArrayStructValue: Comparable,Equatable { }

extension Double: ArrayStructValue{}

extension Int:ArrayStructValue {}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Sul*_*han 9

如果你想在一个数组中使用两种不同的类型,为什么不使用联合,例如使用enum:

enum MyNumber {
    case integer(Int)
    case double(Double)
}

let numbers: [MyNumber] = [.integer(10), .double(2.0)]
Run Code Online (Sandbox Code Playgroud)

但是,在大多数情况下,将all转换IntDouble只有一个[Double]数组可能会更好.