一类的元组数组

时间:2016-03-05 23:32:40

标签: swift

我如何制作元组数组? 目前我有这个:

var inventory1 = Inventory()
var inventory2 = Inventory()
// ... till 16

这是我有点想要但它不起作用:

class Inventory {
 var hp = Int()
 var str = Int()
 var empty: Bool = true  // To specify wether the inventory space is avaible or not
}
var items = Inventory()
var inventory = Inventory()

var droppedItem = item // item gets decided in a func 

var x = 0 // if item drops x = 0

while x < 16   // got 16 inventory slots
if inventory[x].empty == false {
    x++ // if .empty is false x +1 and repeat till otherwhise
} else {
    inventory[x] = droppedItem
    x = 16 // if .empty = true dropped item gets in the inventory slot and x = 16 to stop repeat

}

1 个答案:

答案 0 :(得分:1)

如果使Inventory成为结构而不是类,则可以使用数组初始值设定项创建Inventory结构数组:

struct Inventory {
    var hp = 0
    var str = 0
    var empty = true  // To specify whether the inventory space is available or not
}

// create an array with 16 inventory slots    
var inventory = [Inventory](count: 16, repeatedValue: Inventory())

这应该可以按预期工作。

在这种情况下不使用类的原因是类是引用类型,并且使用数组初始化程序将为您提供16个对同一对象的引用,而不是16个不同的对象。这不是结构的问题,因为它们是值类型,因此Inventory数组中的每个值都是不同的副本。