我是一个真正的新手,所以我为这个问题多么简单而道歉。
我正在尝试使用结构,并且基本上想要获取结构的变量并创建一个简单的计算。
struct Sword {
let name: String
let damage, weight, handle, enchantment : Int
}
let swordSwing = damage + weight + handle + enchantment
我收到错误“使用未解析的标识符”。我在这做错了什么?
我试图在我的结构中添加该行代码并且使用self时出错。但在尝试时我得到了另一个错误。
我一直在看结构元素的初始化,我想知道这是否是我需要做的,但我只是需要在正确的方向上稍微推动一下。
答案 0 :(得分:1)
至少你必须初始化结构的一个实例并赋值。然后,您必须在访问其属性时引用该实例
struct Sword {
let name: String
let damage, weight, handle, enchantment : Int
}
let sword = Sword(name: "Foo", damage: 2, weight: 4, handle: 6, enchantment: 8)
let swordSwing = sword.damage + sword.weight + sword.handle + sword.enchantment
或者你将数学放入结构
struct Sword {
let name: String
let damage, weight, handle, enchantment : Int
var swing : Int {
return damage + weight + handle + enchantment
}
}
let sword = Sword(name: "Foo", damage: 2, weight: 4, handle: 6, enchantment: 8)
let swordSwing = sword.swing
答案 1 :(得分:1)
您需要先创建Sword
let sword = Sword(name: "name", damage: 0, weight: 1, handle: 2, enchantment: 3)
然后使用点表示法访问存储在结构中的变量
let swordSwing = sword.damage + sword.weight + sword.handle + sword.enchantment