質問

の署名 reduceLeft いくつか Seq[A]

def reduceLeft [B >: A] (f: (B, A) => B): B 

タイプの A 知られていますが、下限です >: それを教えてくれます B 任意のスーパータイプにすることができます A.

なぜこのようなのですか?なぜだめですか

def reduceLeft (f: (A, A) => A): A

シーケンスのヘッドがタイプであることをすでに知っています A そして、私はその方法を考えることができません B 等しいもの以外のものである可能性があります A. 。どこで例を提供できますか B いくつかのスーパータイプですか?

役に立ちましたか?

解決

クラスBに方法があるとしましょう combine(other:B): B. 。今、あなたは電話します reduceLeft((b,a) => b.combine(a)) のリストに As。戻りタイプ以来 combineB タイプパラメーターへ reduceLeft ある必要があります B.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top