Guides and Overviews

Language

Standard Library

涵盖Scala标准库的指南和概述.

此页面描述了迁移到Scala 2.13的集合用户的主要更改,并显示了如何使用Scala 2.11 / 2.12和2.13交叉构建项目.

朱利安·理查德·福伊(Julien Richard-Foy)

这些页面描述了Scala 2.13中引入的collections框架的体系结构. 与Collections API相比,您将了解有关框架内部工作的更多信息.

马丁·奥德斯基(Martin Odersky),莱克斯·斯普恩(Lex Spoon)和朱利安·理查德·富

在本文档中,您将学习集合框架如何在几行代码中帮助您定义自己的集合,同时重用框架中绝大多数的集合功能.

朱利安·理查德·福伊(Julien Richard-Foy)

本指南说明如何编写可应用于任何集合类型并返回相同集合类型的操作,以及如何编写可以由要构建的集合类型进行参数化的操作.

Language

涵盖Scala语言功能的指南和概述.

字符串插值允许用户将变量引用直接嵌入处理后的字符串文字中. 这是一个例子:

 val name = "James" println(s"Hello, $name") // Hello, James 
在上面,文字s"Hello, $name"是已处理的字符串文字. 这意味着编译器对此文字做了一些额外的工作. 处理后的字符串文字由"."之前的一组字符表示.SIP-11引入了字符串插值,其中包含实现的所有详细信息.

乔什·苏瑞斯(Josh Suereth)

Scala 2.10引入了一项称为隐式类的新功能. 隐式类是标有隐式关键字的类. 当类在范围内时,此关键字使类的主构造函数可用于隐式转换.

马克·哈拉(Mark Harrah)

值类是Scala中避免分配运行时对象的新机制. 这是通过定义新的AnyVal子类来完成的.

Authoring Libraries

向Scala生态系统贡献开源库的指南.

朱利安·理查德·福伊(Julien Richard-Foy)

列出了图书馆作者应设置以发布和记录其图书馆的所有工具.

Parallel and Concurrent Programming

完整的指南涵盖了Scala的一些用于并行和并发编程的库.

菲利普·哈勒(Philipp Haller),亚历山大·普罗科佩(Aleksandr Prokopec),希瑟·米勒(Heather Miller),维克多·巴生(Viktor Klang),罗兰·库恩(Roland Kuhn)和沃金·约瓦诺维奇(Vojin Jovanovic)

期货提供了一种以有效且无阻塞的方式推理并行执行许多操作的方法. Future是占位符,代表可能不存在的值. 通常,Future的值是同时提供的,可以随后使用. 以这种方式组合并发任务往往会导致更快,异步,无阻塞的并行代码.

Compatibility

什么与什么(或不什么)一起工作.

哪些Scala版本适用于哪些JDK版本

当两个Scala版本与二进制兼容时,可以在一个Scala版本上编译项目并在运行时链接到另一个Scala版本. 安全的运行时链接(仅!)意味着在混合场景中执行程序时,JVM不会抛出LinkageError(子类),前提是在相同版本的Scala上编译和运行时,JVM不会出现LinkageError. 具体来说,这意味着您可能对运行时类路径具有外部依赖关系,这些依赖关系使用的Scala版本与编译时使用的Scala版本不同,只要它们与二进制兼容即可. 换句话说,与在同一版本的Scala上编译和运行所有程序相比,在不同的二进制兼容版本上进行单独的编译不会带来问题.

多样化且全面的库集对任何生产性软件生态系统都很重要. 尽管开发和分发Scala库很容易,但是良好的库作者权限不仅限于编写代码和发布代码. 在本指南中,我们涵盖了二进制兼容性的重要主题.

Tools

有关核心Scala工具(例如Scala REPL和Scaladoc生成)的参考资料.

The Scala REPL is a tool (scala) for evaluating expressions in Scala.

The scala command will execute a source script by wrapping it in a template and then compiling and executing the resulting program

Compiler

涵盖Scala编译器的指南和概述:编译器插件,反射和元编程工具(例如宏).

experimental
希瑟·米勒(Heather Miller),尤金·布尔马科(Eugene Burmako)和菲利普·哈勒(Philipp Haller)

Scala的运行时/编译时反射框架.

Contents
Lex Spoon和Seth Tisue

编译器插件允许自定义和扩展Scala编译器. 本教程描述了插件功能,并引导您完成如何创建简单的插件.

按社区

各种选项可控制scalac编译代码的方式.

Legacy

指南涵盖了与新的Scala版本(2.12+)不再相关的功能.

Vojin Jovanovic和Philipp Haller

为了简化从Scala Actor到Akka的迁移,我们提供了Actor Migration Kit(AMK). AMK包含对Scala Actors的扩展,可以通过在项目的类路径中包含scala-actors-migration.jar来启用. 此外,Akka 2.1包括ActorDSL单例之类的功能,这些功能使使用Scala Actors到Akka的代码转换更为简单. 本文档的目的是指导用户完成迁移过程,并说明如何使用AMK.

deprecated
菲利普·哈勒和斯蒂芬·杜

本指南介绍了Scala 2.8 / 2.9的scala.actors软件包的API. 组织遵循逻辑上属于同一类型的组. 考虑到特征层次结构来构造各个部分. 重点是这些特征定义的各种方法的运行时行为,从而补充了现有的基于Scaladoc的API文档.

马丁·奥德斯基(Martin Odersky)和Lex Spoon

这些页面详细描述了Scala集合框架的体系结构. 与Collections API相比,您将了解有关框架内部工作的更多信息. 您还将学习这种体系结构如何在几行代码中帮助您定义自己的集合,同时重用框架中集合功能的绝大部分.

by  ICOPY.SITE