【发布时间】:2015-01-26 23:01:29
【问题描述】:
我正在尝试快速使用泛型来初始化我的 Vector3D 类中的变量。但是,在将协议“数字”分配给我的变量(使其成为 Double 或 Float)时,我收到以下错误:
协议“编号”只能用作通用约束,因为它 有 Self 或关联的类型要求
public protocol Number {
func +(l: Self, r: Self) -> Self
}
extension Double : Number {}
extension Float : Number {}
class Vector3D: NSObject {
var xCord: Number
var yCord: Number
var zCord: Number
func Vector3D(x: [Number], y: [Number], z: [Number]) {
self.xCord = x
self.yCord = y
self.zCord = z
}
}
我的问题是,如何将泛型应用于 swift 和函数中的变量?
【问题讨论】:
标签: ios generics swift protocols nsobject