問題タブ [scala-generics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
94 参照

scala - ジェネリック メソッドから元のコレクション型を返す方法

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

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

エラー:(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