如何使用swift中的键范围初始化字典?

时间:2018-05-25 03:47:27

标签: swift

这是一个快速的字典声明:

var cardField = [Int:Card]()

如何使用范围语法为此词典初始化密钥? 这样的事情:

var cardField: [Int:Card] = [0...5:nil]

这不起作用...... 谢谢。

2 个答案:

答案 0 :(得分:0)

您可以创建一个数组,然后将其添加到字典中:

var values = Array(1...5)
let keyToValue = Dictionary(uniqueKeysWithValues: zip(values, 1...5))
print(keyToValue[3]!)
// Prints 3
print(keyToValue)
// Prints [5: 5, 2: 2, 3: 3, 1: 1, 4: 4]

答案 1 :(得分:0)

很遗憾,Range不是Sequence,因此无法直接传递给reduce(into:) stride,所以你可以使用某些东西像:

let cardField = Dictionary(uniqueKeysWithValues: stride(from: 0, to: 5, by: 1).map { ($0, "\($0)" )})

最大的问题是你还没有明确指出键的价值,所以没有这些信息,我们真的只是在黑暗中戳。