Ich absolviere einige Übungen. Eine davon ist ein binärer Baum (obwohl der Kontext auf die Frage nicht relevant ist, wie ich dies in Swift zuvor erlebt haben)Schnelle Rückmeldung von Funktionsaufrufen
Ich möchte die folgende Funktion auf eine Zeile setzen wie:
func allData() -> [Int] {
return (left?.allData() ?? []) + [data] + (right?.allData() ?? [])
}
Aber die Fehler ‚Int‘ ist nicht konvertierbar '[Int]
Ok, aber die Aufteilung in getrennte Leitungen ist in Ordnung:
func allData() -> [Int] {
let leftdata = left?.allData() ?? []
let rightdata = right?.allData() ?? []
return (leftdata) + [data] + (rightdata)
}
In der Tat wird es kompilieren entweder mit dem linke Daten, rechte Daten und [Daten], aber nicht beides.
Innerhalb des Trainings kann ich sehen, dass die Leute das nicht in einer Zeile gelöst haben.
Warum ist
return (left?.allData() ?? []) + [data] + (right?.allData() ?? [])
ungültig?
WHAT ALLDATA() Methode gibt zurück? –
Ein Array von Ganzzahl (in der Tat die Daten in einem Baum mit Inorder) – stevenpcurtis
Was sind die Deklarationen für 'links',' rechts' und 'data'? –