WrappedString Scaladoc 2.8.1:
"Этот класс служит оболочкой, дополняющей строки со всеми операциями, найденными в индексированных последовательностях. Разница между этим классом и StringOps заключается в том, что они вызывают методы преобразования, такие как filter и *Карта 1003 * выдаст объект типа 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)
Увы, карта возвращает Vector, а не WrappedString.Если я правильно понимаю:
Фильтр работает, поскольку он просто использует метод 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
?