我想知道是否有一种方法可以根据对另一个词典中的值所做的更改自动更新词典中的值。我有 2 个词典,如下所示:
enum CharacterAttributes: String, Codable {
case strength
case constitution
case dexterity
case intelligence
}
enum CharacterStats: String, Codable {
case maxHealthPoint
case maxTacticPoint
case maxActionPoint
case movementSpeed
}
var attributes = [CharacterAttributes: Float]()
var stats = [CharacterStats: Float]()
其逻辑如下:
stats[.maxHealthPoint] = attributes[.constitution] * 100
stats[.maxTacticPoint] = (attributes[.dexterity] + attributes[.intelligence]) * 1.5
stats[.maxActionPoint] = attributes[.constitution] * 10
stats[.movementSpeed] = attributes[.dexterity] + 70
我想要实现的是,每当属性字典中的值发生变化时,统计信息中的相应值就会自动更新。我知道对于普通变量我可以使用 didSet 关键字,但如何将这个概念应用于字典?
在此先感谢您的帮助。
didSet
将字典封装到类中后尝试使用观察者:用法示例:
输出: