2

入力と同じ型のコレクションを返すジェネリック メソッドがあります。

def removeN[A, C <: Seq[A]](s: C, n: Int): C = {
  s.take(n) ++ s.drop(n + 1) // Sample operation
}

しかし、このコードはコンパイルされません:

エラー:(34, 15) タイプが一致しません。見つかった: Seq[A] 必要: C s.take(n) ++ s.drop(n + 1)

  1. Cを明確に表している場合、これはどのように可能Seq[A]ですか? Seq[A]この種の連結は、サブタイプではなく、常に親タイプのインスタンスを返すということCですか? 型のコレクションを生成するためにコードを書き直すことはできCますか?
  2. これは、一般的な入力と同じコレクション型 (私の場合は のサブタイプ) を返すジェネリック メソッドを定義する正しい方法Seqですか?

スカラ 2.12.4

4

1 に答える 1