Я хочу расширить метод словаря, но только если Key имеет тип String.Расширить словарь, где Key имеет тип String
Я стараюсь делать это:
extension Dictionary where Key: String {
mutating func lowercaseKeys() {
for key in self.keys {
self[key.lowercase] = self.removeValueForKey(key)
}
}
}
И получите ошибку:
Type 'Key' constrained to non-protocol type 'String'
На основании этого сообщения об ошибке, я могу сказать, что я могу только сделать этот вид фильтрации с протоколами ... Есть есть способ обходить это?
StringLiteralConvertible устарел от Swift 3. Вместо этого используйте ExpressibleByStringLiteral. –
Замечательно, спасибо @MacBellingrath! –