我创建了一个iOS应用程序来仲裁柔道比赛。我的应用程序有一个Fighter类。在这个Fighter类中,我还有一个opponent属性,它也是Fighter类型的。所以我有这样的东西:

class Fighter {
    ...
    var opponent: Fighter?
    ...
}

var fighter1 = Fighter()
var fighter2 = Fighter()
fighter1.opponent = fighter2
fighter2.opponent = fighter1

我宣布它是可选的,但我被卡住了,因为我不想它是可选的,一个战士必须有一个对手。这样做很好,但我不喜欢,最后我得到了很多不必要的if let!。而且很难看。
我怎样才能做得更好更安全?

最佳答案

与其让一个战斗机包含另一个战斗机,不如创建一个包含两个战斗机对象的匹配对象。类型不应包含自身。
例如:

struct Match{
    let fighterOne: Fighter
    let fighterTwo: Fighter
}

关于swift - 包含自己类型的属性的Swift类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53871917/

10-14 21:12
查看更多