大多数雨燕SIMD浮点类型有+ - * /运营商,所以我们就可以计算器像下面的总和: 是否有任何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”或者是没有办法,我可以创建这样一个协议的任何方式?
同样的技术在http://stackoverflow.com/questions/25575513/what-protocol-should-be-adopted-by-a-type-for-a-generic-function-to-take-any-num可以在这里应用。 –
啊,这是一个很酷的东西,正是我想要做的!十分感谢大家。 :) – hagmas