【发布时间】:2017-12-06 00:50:36
【问题描述】:
在我看来,为SCNMatrix4 和SCNVector3 等类型的运算符添加重载似乎是一个显而易见的想法,但Apple 似乎选择使用静态全局函数(例如SCNMatrix4Mult)。虽然矩阵乘法和向量加法等运算符的添加很简单,但我想知道:
- 在 Swift 中是否有任何理由避免此类重载?
- 是否有任何用于此类重载的规范库?我发现了这些:
- 除了以下内容之外,还有什么实现?
示例实现:
func * (left: SCNMatrix4, right: SCNMatrix4) -> SCNMatrix4 {
return SCNMatrix4Mult(left, right)
}
func + (left: SCNVector3, right: SCNVector3) -> SCNVector3 {
return SCNVector3Make(left.x + right.x, left.y + right.y, left.z + right.z)
}
【问题讨论】:
标签: swift operator-overloading scenekit