我如何制作元组数组? 目前我有这个:
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
}
答案 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
数组中的每个值都是不同的副本。