3
我有聲明空集的問題 - 因爲它會產生一個亞型,我不能使用Nil
...如何設計可與用戶定義集合一起使用的函數?
def partiallyReduceString[S <: SeqLike[String, S]](reduction: String, seq: S): (String, S) =
if (seq.nonEmpty)
...
else
(reduction, Nil)
我也試過CanBuildFrom
,但我只是得到編譯時錯誤...
def partiallyReduceString ... (implicit bf: CanBuildFrom[S, String, S]): (String, S) =
if (seq.nonEmpty)
...
else
(reduction, bf().result())
String類型 的元件不能構造型S的集合基於類型的集合S.
非常好的一點。假設我把它從一個視圖綁定到標準約束 - 這個問題肯定會消失 - 但我仍然有CanBuildFrom的編譯時問題 –
我已經從示例中移除了視圖,將焦點移到主要問題:) –
'S可以是List或Set'類型 - 不知道我明白:Set不是SeqLike的子類型,是嗎?確實是 –