Scala 作为序列查看的字符串
丹尼尔在这篇文章中的回答是: 提供了一种将字符串作为Scala集合处理的方法 处理字符串和数组,这是Java类,就像它们是Scala>集合一样。例如: def f[CC 我想知道我是否可以在Scala中找到此功能 标准库 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]
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我看你已经回答了,非常感谢你的详细解释和及时回复!