Avatar
Genericsの宣言位置が直接の場合は型パラの制約が自動で付きますが、階層が異なる場合は推論できないですね。なので、以下のコードは通ると思います。 func globalFunc<E>(myArray: MyArray<E>) -> MySet<E> 階層が異なるというのは、推論が必要となる関数の外側のスコープでGenericsが宣言されてる場合ですね。 例示していただいてるコードの通らない方は、まさにその例です。