scala.collection.immutable.WrappedString需要一个隐式的CanBui
发布时间:2020-12-16 19:24:08 所属栏目:安全 来源:网络整理
导读:WrappedString Scaladoc 2.8.1: “这个类充当了一个包装器,用索引序列中的所有操作来扩充字符串. 这个类和StringOps之间的区别在于调用转换器方法(如filter和map)将产生WrappedString类型的对象而不是String“ scala import scala.collection.immutable.Wra
WrappedString
Scaladoc 2.8.1:
“这个类充当了一个包装器,用索引序列中的所有操作来扩充字符串. 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) scala> s.map(x => x) res2: scala.collection.immutable.IndexedSeq[Char] = Vector(f,o) 唉,map返回Vector而不是WrappedString.如果我理解正确的话: 过滤器可以工作,因为它只使用newBuilder方法,但是就像BitSet一样,map需要一个WrappedString的隐式CanBuildFrom.这是代码或文档中的错误还是我遗漏了什么? 此外,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]) : That ? 解决方法
第一个是一个bug,一个将被修复为2.9.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |