Scala 作为序列查看的字符串

Scala 作为序列查看的字符串,scala,Scala,丹尼尔在这篇文章中的回答是: 提供了一种将字符串作为Scala集合处理的方法 处理字符串和数组,这是Java类,就像它们是Scala>集合一样。例如: def f[CC 我想知道我是否可以在Scala中找到此功能 标准库 Scala为java.lang.String提供了一个名为WrappedString的包装器: final class WrappedString(val self: String) extends AbstractSeq[Char]

丹尼尔在这篇文章中的回答是:

提供了一种将字符串作为Scala集合处理的方法

处理字符串和数组,这是Java类,就像它们是Scala>集合一样。例如:

def f[CC 我想知道我是否可以在Scala中找到此功能 标准库

Scala为
java.lang.String
提供了一个名为
WrappedString
的包装器:

final class WrappedString(val self: String) extends AbstractSeq[Char]
                                            with IndexedSeq[Char] 
                                            with StringLike[WrappedString]
f[String]("he", "hello")({
  ((s: String) => scala.this.Predef.wrapString(s))
});
运行时:

f("he", "hello")
编译器通过
Predef.wrapString
将字符串文本隐式转换为
WrappedString
的实例:

final class WrappedString(val self: String) extends AbstractSeq[Char]
                                            with IndexedSeq[Char] 
                                            with StringLike[WrappedString]
f[String]("he", "hello")({
  ((s: String) => scala.this.Predef.wrapString(s))
});
反过来,
WrappedString
扩展了
IndexedSeq[Char]
,这就是为什么它遵从视图边界请求,可以转换为可遍历的

我一直看到缩写“ev”,尤其是与 上下文边界还是视图边界,它代表什么


这是“证据”的缩写。如果您仔细想想,当您请求某种隐式参数在范围内时,编译器会要求您提供操作可能发生的证据。

我想知道我是否可以在Scala标准库中找到此功能。您是说
String
在哪里被视为Scala集合?是的,无论如何s我看你已经回答了,非常感谢你的详细解释和及时回复!