0
私はアイテムの配列を返す必要がある関数を書いています。関数では、関数から返りたいアイテムのタイプを決定するロジックがあります。私はこのような何かを開始しました:特定のタイプへのSwiftジェネリックアレイ
func testFunc<T>(option:Int) -> [T] {
var result:[T] = []
switch option {
case 1:
let sampleString:String = "hello"
result.append(sampleString)
case 2:
let sampleInt:Int = 23
result.append(sampleInt)
default:
return result
}
return result
}
これは私に次のエラーを与える:
"cannot invoke append with an argument list of type '(String)',
and
"cannot invoke append with an argument list of type '(Int)'
それは私が私の問題を解決する方法を把握しようとしています、理にかなっていますが、。関数を呼び出すと、返される配列の型はわかりませんが、配列に項目を追加する前に型を判別する方法は関数が知っています。
私はこれをSwiftでどのように達成できますか?
チェッカーがswitch'es '知らないタイプ。 'option'の値に基づいてT_will_が何であるかを知ることはできません。これを2つの機能に分解できない理由はありますか? –
戻り値の型が入力型に関係していない場合は、Any Swift 3またはAnyObject Swift 2の配列を返します –