加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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:

“这个类充当了一个包装器,用索引序列中的所有操作来扩充字符串.
这个类和StringOps之间的区别在于调用转换器方法(如filter和map)将产生WrappedString类型的对象而不是String“

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读