【发布时间】:2021-07-22 00:09:56
【问题描述】:
我想要一个协议类型的集合:在这种情况下,我想要一个变量“party”是一个 GameCharacter 类型的数组,这样我就可以将所有符合 GameCharacter 的东西放入其中。
下面的代码产生以下错误:
Protocol '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
【问题讨论】:
标签: swift collections protocols identifiable