我想要一个协议类型的集合:在这种情况下,我想要一个变量“ party ”是一个 GameCharacter 类型的数组,这样我就可以把所有符合 GameCharacter 的东西放在里面。
下面的代码产生以下错误:
协议“GameCharacter”只能用作通用约束,因为它具有 Self 或关联的类型要求
这里有什么问题?怎么做才对?
protocol GameCharacter: Identifiable {
var name: String {get}
var maxHealt: Int {get}
var healt: Int { get set }
}
struct Warrior: GameCharacter, Fighter {
var name: String
var maxHealt: Int
var healt: Int
var armor: Armor
var weapon: Weapon
var resistence: Int
var id: String {
return name
}
}
var party: [GameCharacter] <--- error