如何将struct的元素添加到函数中

时间:2017-12-02 07:18:01

标签: swift struct

我是一个真正的新手,所以我为这个问题多么简单而道歉。

我正在尝试使用结构,并且基本上想要获取结构的变量并创建一个简单的计算。

struct Sword {
let name: String
let damage, weight, handle, enchantment : Int
}

let swordSwing = damage + weight + handle + enchantment

我收到错误“使用未解析的标识符”。我在这做错了什么?

我试图在我的结构中添加该行代码并且使用self时出错。但在尝试时我得到了另一个错误。

我一直在看结构元素的初始化,我想知道这是否是我需要做的,但我只是需要在正确的方向上稍微推动一下。

2 个答案:

答案 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

请阅读Swift Language Guide: Classes and Structs

答案 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