so verlängern Sie die Swift-Wörterbuch, wo K:String, V:String
Ich dachte die folgende syntax:
extension Dictionary where Key:String,Value:String{
func addIfNew(key:String,value:String){
print("new item added: \(key) with value: \(value)")
}
}
Beispiel: würde die Funktion log keine neuen Daten Hinzugefügt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies sollte genug sein ...
machen Sie nicht andere Arten konform zu P und Sie sind in Ordnung
in Swift3
key
undvalue
sollte vom TypKey
undValue
, aber andere als, dass, wenn es funktioniert, Super!!! Es ist nicht anders als meineStringType
außer dassStringType
ist viel ausdrucksstärker alsP
Nicht möglich, die Art und Weise Sie wollen, es zu tun. Sie können nur einschränken
extensions
vonDictionary
zuprotocols
Key
und/oderValue
zu entsprechen. Sonst wird Ihnen nur mehr Fehler.Aber Sie können dies tun :
Wichtig ist, sich zu Fragen, was Sie wollen.
Strings
Equatable
ist gut genugWenn
Equatable
ist gut genug, Sie können dies tun :Obwohl diese Funktion funktioniert unter allen
Dictionary
derenValue
istEquatable
können Sie nur verwenden Sie es auf diejenigen, dieString
alsValue
Wenn Sie es wirklich brauchen nur auf
String
müssen Sie erstellen eine benutzerdefinierteprotocol
haben und nurString
übereinstimmen. Dieprotocol
werden müssen, um eine berechnete Eigenschaft, die zurückself
denn sonst werden Sie nicht in der Lage sein, umprint
es, da es nicht alsString
innerhalb derextension
.Seite Hinweis:
Seit
Dictionary
ist einstruct
Funktionen müssenmutating
um zu verändernself
.StringLiteralConvertible
direkt anstelle der benutzerdefinierten Protokolle?StringLiteralConvertible
nicht behindern die Funktion nurString