Scala 3
This is the documentation for the Scala standard library.
Package structure
The scala package contains core types like Int
, Float
, Array
or Option
which are accessible in all Scala compilation units without explicit qualification or
imports.
Notable packages include:
scala.collection
and its sub-packages contain Scala's collections frameworkscala.collection.immutable
- Immutable, sequential data-structures such asVector
,List
,Range
,HashMap
orHashSet
scala.collection.mutable
- Mutable, sequential data-structures such asArrayBuffer
,StringBuilder
,HashMap
orHashSet
scala.collection.concurrent
- Mutable, concurrent data-structures such asTrieMap
scala.concurrent
- Primitives for concurrent programming such asFutures
andPromises
scala.io
- Input and output operationsscala.math
- Basic math functions and additional numeric types likeBigInt
andBigDecimal
scala.sys
- Interaction with other processes and the operating system
Other packages exist. See the complete list on the right.
Additional parts of the standard library are shipped as separate libraries. These include:
scala.reflect
- Scala's reflection API (scala-reflect.jar)scala.xml
- XML parsing, manipulation, and serialization (scala-xml.jar)scala.collection.parallel
- Parallel collections (scala-parallel-collections.jar)scala.util.parsing
- Parser combinators (scala-parser-combinators.jar)scala.swing
- A convenient wrapper around Java's GUI framework called Swing (scala-swing.jar)
Automatic imports
Identifiers in the scala package and the scala.Predef
object are always in scope by default.
Some of these identifiers are type aliases provided as shortcuts to commonly used classes. For example, List
is an alias for
scala.collection.immutable.List
.
Other aliases refer to classes provided by the underlying platform. For example, on the JVM, String
is an alias for java.lang.String
.