私はいくつかのエクササイズ練習を完了しています。関数呼び出しの即時返却結果
func allData() -> [Int] {
return (left?.allData() ?? []) + [data] + (right?.allData() ?? [])
}
しかし:
は私のように1行に次の関数を入れたい(コンテキストは、私が以前スウィフトでこれを経験してきたように、質問には関係ありませんが)一つは、バイナリツリーですエラーが
OK]を[INT] 'に変換「のInt」されていないが、別の行に分割は正常である:実際に、それはでコンパイルされます
func allData() -> [Int] {
let leftdata = left?.allData() ?? []
let rightdata = right?.allData() ?? []
return (leftdata) + [data] + (rightdata)
}
いずれか左のデータ、右のデータ、[データ]ですが、両方ではありません。
運動の中で私は人々がこれを1行で解決しなかったことがわかります。
なぜ
return (left?.allData() ?? []) + [data] + (right?.allData() ?? [])
が無効ですか?
何ALLDATA ()メソッドが返す? –
Integerの配列(実際にはInorderを使ったツリーのデータ) – stevenpcurtis
'left'、' right'、 'data'の宣言は何ですか? –