ArraySlice
のようにDictionarySlice
のようなものはありません。代わりに、dropFirst()
はDictionary
のようにキーサブスクリプトをサポートしていないSlice<Dictionary>
を返します。ただし、Dictionary
とちょうどあなたができるように、キーと値のペアを持つSlice<Dictionary>
をループすることができます
extension Dictionary {
init(_ slice: Slice<Dictionary>) {
self = [:]
for (key, value) in slice {
self[key] = value
}
}
}
let dictionary = ["a": 1, "b": 2, "c": 3]
let smallerDictionary = Dictionary(dictionary.dropFirst())
print(smallerDictionary) // ["a": 1, "c": 3]
私は本当にお勧めしません:
let dictionary = ["a": 1, "b": 2, "c": 3]
var smallerDictionary: [String: Int] = [:]
for (key, value) in dictionary.dropFirst() {
smallerDictionary[key] = value
}
print(smallerDictionary) // ["a": 1, "c": 3]
拡張は、このビットよりエレガントになるだろうあなたは、キーと値のペアがドロップされる知っている、と
ません
- ので、しかし、これを行います本当にランダムではありません。
本当にこれをやりたければ、これを行う方法は分かっています。