In Swift 3.0 Xcode Beta 3 habe ich ein ziemlich einfaches Protokoll und zwei Strukturen definiert, die es implementieren, wenn ich das Array beim Erstellen der Objekte initialisieren, funktioniert es, aber wenn ich versuche, Elemente hinzuzufügen Ich erhalte einen Fehler:Swift Protocol Arrays Hinzufügen vs. Instanisieren
Cannot convert value of type '[H]' to expected argument type 'inout _'
Sollte das nicht funktionieren?
protocol H {
var v : Int { get set }
func hello()
}
struct J : H {
var v : Int
func hello() {
print("j")
}
}
struct K : H {
var v : Int
func hello() {
print("k")
}
}
let ag:[H] = [K(v:3), J(v:4)] // works
ag[0].hello()
ag[1].hello()
var af:[H] = []
af += [K(v:3)] // does not work
af += [J(v:4)] // does not work
af[0].hello()
af[1].hello()
'var af: [H] = []' wird besser geschrieben als: 'var af = [H]() ' – Alexander