我有以下方法:方法採取隱式CanBuildFrom不適用於eta擴展?
def firstAndLast[CC, A, That](seq: CC)(implicit asSeq: CC => Seq[A], cbf: CanBuildFrom[CC, A, That]): That = {
val b = cbf(seq)
b += seq.head
b += seq.last
b.result
}
參見:Method taking Seq[T] to return String rather than Seq[Char]的理由。它的工作原理是在第一種情況下的魅力,但未能在第二編譯:
List("abc", "def") map {firstAndLast(_)}
List("abc", "def") map firstAndLast
,並提供:
error: No implicit view available from CC => Seq[A].
List("abc", "def") map firstAndLast
任何想法如何提高這個聲明,以避免額外的包裝?好像ETA-擴大的問題