私は一番最初の市民を使いたいですか?呼び出す関数を決定するにはSwiftをタイプします。Swiftのタイプのコンテキストタイプの推論2.2 +
func sf(v: [Float]) -> Float{
}
func df(v: [Double]) -> Double {
}
func f<T: RealType>(seq ls: [T]) -> T {
if T.self == Float.self {
return sf(ls) // 1. where sf: Float -> Void
} else if T.self == Double.self {
return df(ls) // 2. where df : Double -> Void
}
}
タイプ推論システムでは、1つのブランチT == FloatとDoubleを別のブランチで認識できませんでしたか?
ここに欠落している機能、複雑な機能、またはバグはありますか?
編集:
私のプロトタイプのためのtypealias RealType = protocol<FloatingPointType, Hashable, Equatable, Comparable, FloatLiteralConvertible, SignedNumberType>
が、プロトコル
あなたのコードには 'RealType'がどのように定義されていますか? – Cristik
RealTypeは現在のタイプアリアです。私はそれを追加するために私の質問を編集しました。 – jcnm