这是一个快速的字典声明:
var cardField = [Int:Card]()
如何使用范围语法为此词典初始化密钥? 这样的事情:
var cardField: [Int:Card] = [0...5:nil]
这不起作用...... 谢谢。
答案 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)" )})
最大的问题是你还没有明确指出键的价值,所以没有这些信息,我们真的只是在黑暗中戳。