gpt4 book ai didi

scala.collection.immutable.WrappedString 需要隐式 CanBuildFrom 来实现记录的功能吗?

转载 作者:行者123 更新时间:2023-12-01 05:42:00 25 4
gpt4 key购买 nike

WrappedString Scaladoc 2.8.1:

“这个类作为一个包装器,用在索引序列中找到的所有操作来扩充字符串。
这个类和StringOps的区别在于调用filter和等transformer方法map 将产生一个 WrappedString 类型的对象 而不是一个字符串”

  scala> import scala.collection.immutable.WrappedString
import scala.collection.immutable.WrappedString

scala> val s = new WrappedString("foo")
s: scala.collection.immutable.WrappedString = WrappedString(f, o, o)

scala> s.filter(x => true)
res1: scala.collection.immutable.WrappedString = WrappedString(f, o, o)

scala> s.map(x => x)
res2: scala.collection.immutable.IndexedSeq[Char] = Vector(f, o, o)

唉,map 返回一个 Vector 而不是 WrappedString。如果我理解正确:

Filter 可以工作,因为它只使用 newBuilder 方法,但是 map 需要一个隐式的 CanBuildFrom 来作为 WrappedString ,就像 BitSet 一样。这是代码或文档中的错误还是我遗漏了什么?

此外,scaladoc 简化版对我来说没有任何意义:
def map [B] (f: (Char) ⇒ B) : WrappedString[B]
def map [B, That] (f: (Char) ⇒ B)(implicit bf: CanBuildFrom[WrappedString, B, That]) : That

不应该是:
def map [B] (f: (Char) ⇒ Char) : WrappedString
def map [B, That] (f: (Char) ⇒ B)(implicit bf: CanBuildFrom[WrappedString, B, That]) : That

?

最佳答案

第一个是错误,应该在 2.9 中修复。

关于scala.collection.immutable.WrappedString 需要隐式 CanBuildFrom 来实现记录的功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4947250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com