【发布时间】:2015-11-05 06:01:29
【问题描述】:
大多数 Swift SIMD 浮点类型都有 +-*/ 运算符,所以我们可以像下面这样计算总和:
import simd
float2(2.0) + float2(2.0) // float2(4.0, 4.0)
float4(2.0) + float4(2.0) // float4(4.0, 4.0, 4.0, 4.0)
现在,假设我有一个通用函数,它接受一对 float2、float3 或 float4 作为参数并返回它们的总和:
func calculateSum<T: SomeProtocolCoversThoseFloats>(a: T, b: T) -> {
return a + b
}
有没有类似“SomeProtocolCoversThoseFloats”的协议,或者有什么方法可以创建这样的协议?
【问题讨论】:
-
这里可以应用与stackoverflow.com/questions/25575513/… 相同的技术。
-
啊,这是一个很酷的东西,正是我想做的......!十分感谢大家。 :)