構造体に依存する戻り値の型が異なるだけの同じメソッド名を持つ個々の拡張機能でプロトコル準拠が生成されるいくつかの迅速な構造体があります。それに加えて、ジェネリック型のプロトコル準拠関数を呼び出すジェネリック関数でそれらを使用したい)。//: 遊び場 - 名詞: 人が遊べる場所
import UIKit
protocol FooProt {
typealias T;
static func createMe<T>()->T;
}
struct FooStruct{
}
extension FooStruct: FooProt{
typealias T = FooStruct;
static func createMe () -> FooStruct{
return FooStruct();
}
}
class Creator{
fun createOne<T where T:FooProt>(type:T.Type){
let instance = T.createMe();
}
}
残念ながら、次のエラーが発生します: /var/folders/sn/78_zvfd15d74dzn01mdv258h0000gq/T/./lldb/3741/playground6.swift:7 :17: 注: プロトコルにはタイプ ' () -> T の関数 'createMe()' が必要です' (別名 '<τ_1_0> () -> τ_1_0') static func createMe()->T;
ここで正確に準拠していないものは何ですか?回避策はありますか?