chr*_*s P 12 static-classes swift
我正在寻找一个名为VectorCalculator的静态类.也许这个函数应该放在我的Vector类中(类似于NSString的 - -stringByAppendingStringObj-C中的方法)......如果你认为......让我知道.
无论如何,我想在一个名为VectorCalculator的静态类中添加几个静态函数.它将计算'点积'并返回一个Vector.另一个功能可能是"计算并返回两个给定矢量之间的角度".
A)是否有人会为此创建一个静态类
B)我应该将这些函数添加为Vector类的实例函数,例如...... public func dotProductWithVector(v: Vector) -> Vector和public func angleWithVector(v: Vector) -> Double.然后这两个参数向量v将应用于Vector类main Vector u.
去A或B有什么好处?
如果您认为B,仅供将来参考,您将如何在Swift中创建一个全静态类?
Cœu*_*œur 12
你会如何在Swift中创建一个全静态类?
static 没有实例,所以我会把它作为一个没有初始化器的结构:
struct VectorCalculator {
    @available(*, unavailable) private init() {}
    static func dotProduct(v: Vector, w: Vector) -> Vector {
        ...
    }
}
cur*_*ous 10
如果我已经正确理解你,你会对案例A中的类型方法感兴趣.通过在方法的func关键字之前写入static关键字来指示类型方法.类也可以使用class关键字来允许子类覆盖超类的该方法的实现.(C)
    struct Vector {
        var x, y, z: Int
    }
    class VectorCalculator {
        static func dotProductOfVector(vec1: Vector, withVector vec2: Vector) -> Vector {
            let newX = //calc x coord;
            let newY = //calc y coord;;
            let newZ = ////calc z coord;;
            return Vector(x: newX,y: newY, z: newZ);
        }
    }
let vec1 = Vector(x:1, y:2, z:3)
let vec2 = Vector(x:4, y:5, z:6)
let v = VectorCalculator.dotProductOfVector(vec1, withVector: vec2)
至于B的好处,它取决于你解决的任务.如果你想保留未经修改的原始载体,使用A变体会更方便.但我认为你可以提供两种类型的功能.
| 归档时间: | 
 | 
| 查看次数: | 21682 次 | 
| 最近记录: |