On this page
Class scala.Option
@SerialVersionUID(-114498752079829388L)
Represents optional values. Instances of Option
are either an instance of scala.Some or the object None
.
The most idiomatic way to use an scala.Option instance is to treat it as a collection or monad and use map
,flatMap
, filter
, or foreach
:
val name: Option[String] = request getParameter "name"
val upper = name map { _.trim } filter { _.length != 0 } map { _.toUpperCase }
println(upper getOrElse "")
Note that this is equivalent to
val upper = for {
name <- request getParameter "name"
trimmed <- Some(name.trim)
upper <- Some(trimmed.toUpperCase) if trimmed.length != 0
} yield upper
println(upper getOrElse "")
Because of how for comprehension works, if None
is returned from request.getParameter
, the entire expression results in None
This allows for sophisticated chaining of scala.Option values without having to check for the existence of a value.
These are useful methods that exist for both scala.Some and None
. - isDefined — True if not empty - isEmpty — True if empty - nonEmpty — True if not empty - orElse — Evaluate and return alternate optional value if empty - getOrElse — Evaluate and return alternate value if empty - get — Return value, throw exception if empty - fold — Apply function on optional value, return default if empty - map — Apply a function on the optional value - flatMap — Same as map but function must return an optional value - foreach — Apply a procedure on option value - collect — Apply partial pattern match on optional value - filter — An optional value satisfies predicate - filterNot — An optional value doesn't satisfy predicate - exists — Apply predicate on optional value, or false if empty - forall — Apply predicate on optional value, or true if empty - contains — Checks if value equals optional value, or false if empty - zip — Combine two optional values to make a paired optional value - unzip — Split an optional pair to two optional values - unzip3 — Split an optional triple to three optional values - toList — Unary list of optional value, otherwise the empty list
A less-idiomatic way to use scala.Option values is via pattern matching:
val nameMaybe = request getParameter "name"
nameMaybe match {
case Some(name) =>
println(name.trim.toUppercase)
case None =>
println("No name value")
}
Interacting with code that can occasionally return null can be safely wrapped in scala.Option to become None
and scala.Some otherwise.
val abc = new java.util.HashMap[Int, String]
abc.put(1, "A")
bMaybe = Option(abc.get(2))
bMaybe match {
case Some(b) =>
println(s"Found $b")
case None =>
println("Not found")
}
Note | Many of the methods in here are duplicative with those in the Traversable hierarchy, but they are duplicated for a reason: the implicit conversion tends to leave one with an Iterable in situations where one could have retained an Option. |
---|---|
Supertypes | |
Known subtypes | |
Self type |
Classlikes
Source
class WithFilter(p: A => Boolean)
We need a whole WithFilter class to honor the "doesn't create a new collection" contract even though it seems unlikely to matter much in a collection with max size 1.
Abstract methods
Source
def get: A
Returns the option's value.
This is equivalent to:
option match {
case Some(x) => x
case None => throw new Exception
}
Throws |
|
---|---|
Note | The option must be nonempty. |
Concrete methods
Source@inline
Returns a scala.Some containing the result of applying pf
to this scala.Option's contained value, if this option is nonempty and pf
is defined for that value. Returns None
otherwise.
Value parameters |
|
---|---|
Returns | the result of applying |
Example |
|
Source
Tests whether the option contains a given value as an element.
This is equivalent to:
option match {
case Some(x) => x == elem
case None => false
}
Value parameters |
|
---|---|
Returns |
|
Example |
|
Source@inline
Returns true if this option is nonempty and the predicate p
returns true when applied to this scala.Option's value. Otherwise, returns false.
This is equivalent to:
option match {
case Some(x) => p(x)
case None => false
}
Value parameters |
|
---|
Source@inline
Returns this scala.Option if it is nonempty and applying the predicate p
to this scala.Option's value returns true. Otherwise, return None
.
This is equivalent to:
option match {
case Some(x) if p(x) => Some(x)
case _ => None
}
Value parameters |
|
---|
Source@inline
Returns this scala.Option if it is nonempty and applying the predicate p
to this scala.Option's value returns false. Otherwise, return None
.
This is equivalent to:
option match {
case Some(x) if !p(x) => Some(x)
case _ => None
}
Value parameters |
|
---|
Source@inline
Returns the result of applying f
to this scala.Option's value if this scala.Option is nonempty. Returns None
if this scala.Option is empty. Slightly different from map
in that f
is expected to return an scala.Option (which could be None
).
This is equivalent to:
option match {
case Some(x) => f(x)
case None => None
}
Value parameters |
|
---|---|
See also | map foreach |
Source
Returns the nested scala.Option value if it is nonempty. Otherwise, return None
.
This is equivalent to:
option match {
case Some(Some(b)) => Some(b)
case _ => None
}
Value parameters |
|
---|---|
See also | flatMap |
Example |
|
Source@inline
final def fold[B](ifEmpty: => B)(f: A => B): B
Returns the result of applying f
to this scala.Option's value if the scala.Option is nonempty. Otherwise, evaluates expression ifEmpty
.
This is equivalent to:
option match {
case Some(x) => f(x)
case None => ifEmpty
}
This is also equivalent to:
option map f getOrElse ifEmpty
Value parameters |
|
---|
Source@inline
Returns true if this option is empty or the predicate p
returns true when applied to this scala.Option's value.
This is equivalent to:
option match {
case Some(x) => p(x)
case None => true
}
Value parameters |
|
---|
Source@inline
Apply the given procedure f
to the option's value, if it is nonempty. Otherwise, do nothing.
This is equivalent to:
option match {
case Some(x) => f(x)
case None => ()
}
Value parameters |
|
---|---|
See also | map flatMap |
Source@inline
final def getOrElse[B >: A](default: => B): B
Returns the option's value if the option is nonempty, otherwise return the result of evaluating default
.
This is equivalent to:
option match {
case Some(x) => x
case None => default
}
Value parameters |
|
---|
Source
Returns true if the option is an instance of scala.Some, false otherwise.
This is equivalent to:
option match {
case Some(_) => true
case None => false
}
Source
Returns true if the option is None
, false otherwise.
This is equivalent to:
option match {
case Some(_) => false
case None => true
}
Source
Source
Returns a singleton iterator returning the scala.Option's value if it is nonempty, or an empty iterator if the option is empty.
Source
Definition Classes | IterableOnce |
---|
Source
Analogous to zip
except that the elements in each collection are not consumed until a strict operation is invoked on the returned LazyZip2
decorator.
Calls to lazyZip
can be chained to support higher arities (up to 4) without incurring the expense of constructing and deconstructing intermediary tuples.
val xs = List(1, 2, 3)
val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d)
// res == List(4, 8, 12)
Type parameters |
|
---|---|
Value parameters |
|
Returns | a decorator |
Source@inline
Returns a scala.Some containing the result of applying f
to this scala.Option's value if this scala.Option is nonempty. Otherwise return None
.
This is equivalent to:
option match {
case Some(x) => Some(f(x))
case None => None
}
Value parameters |
|
---|---|
See also | flatMap foreach |
Note | This is similar to |
Source
Returns false if the option is None
, true otherwise.
This is equivalent to:
option match {
case Some(_) => true
case None => false
}
Note | Implemented here to avoid the implicit conversion to Iterable. |
---|
Source@inline
Returns this scala.Option if it is nonempty, otherwise return the result of evaluating alternative
.
This is equivalent to:
option match {
case Some(x) => Some(x)
case None => alternative
}
Value parameters |
|
---|
Source@inline
Returns the option's value if it is nonempty, or null
if it is empty.
Although the use of null is discouraged, code written to use scala.Option must often interface with code that expects and returns nulls.
This is equivalent to:
option match {
case Some(x) => x
case None => null
}
Example |
|
---|
Source@inline
Returns a scala.util.Right containing the given argument right
if this is empty, or a scala.util.Left containing this scala.Option's value if this scala.Option is nonempty.
This is equivalent to:
option match {
case Some(x) => Left(x)
case None => Right(right)
}
Value parameters |
|
---|---|
See also | toRight |
Source
Returns a singleton list containing the scala.Option's value if it is nonempty, or the empty list if the scala.Option is empty.
This is equivalent to:
option match {
case Some(x) => List(x)
case None => Nil
}
Source@inline
Returns a scala.util.Left containing the given argument left
if this scala.Option is empty, or a scala.util.Right containing this scala.Option's value if this is nonempty.
This is equivalent to:
option match {
case Some(x) => Right(x)
case None => Left(left)
}
Value parameters |
|
---|---|
See also | toLeft |
Source
Converts an Option of a pair into an Option of the first element and an Option of the second element.
This is equivalent to:
option match {
case Some((x, y)) => (Some(x), Some(y))
case _ => (None, None)
}
Type parameters |
|
---|---|
Value parameters |
|
Returns | a pair of Options, containing, respectively, the first and second half of the element pair of this Option. |
Source
Converts an Option of a triple into three Options, one containing the element from each position of the triple.
This is equivalent to:
option match {
case Some((x, y, z)) => (Some(x), Some(y), Some(z))
case _ => (None, None, None)
}
Type parameters |
|
---|---|
Value parameters |
|
Returns | a triple of Options, containing, respectively, the first, second, and third elements from the element triple of this Option. |
Source@inline
Necessary to keep scala.Option from being implicitly converted to scala.collection.Iterable in for
comprehensions.
Source
Returns a scala.Some formed from this option and another option by combining the corresponding elements in a pair. If either of the two options is empty, None
is returned.
This is equivalent to:
(option1, option2) match {
case (Some(x), Some(y)) => Some((x, y))
case _ => None
}
Value parameters |
|
---|---|
Example |
|
Inherited methods
Source@inline
Alias for concat
Inherited from | IterableOps |
---|
Source@inline
Appends all elements of this collection to a string builder. The written text consists of the string representations (w.r.t. the method toString
) of all elements of this collection without any separator string.
Example:
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)
scala> val b = new StringBuilder()
b: StringBuilder =
scala> val h = a.addString(b)
h: StringBuilder = 1234
Value parameters |
|
---|---|
Returns | the string builder |
Inherited from | IterableOnceOps |
Source@inline
Appends all elements of this collection to a string builder using a separator string. The written text consists of the string representations (w.r.t. the method toString
) of all elements of this collection, separated by the string sep
.
Example:
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)
scala> val b = new StringBuilder()
b: StringBuilder =
scala> a.addString(b, ", ")
res0: StringBuilder = 1, 2, 3, 4
Value parameters |
|
---|---|
Returns | the string builder |
Inherited from | IterableOnceOps |
Source
Appends all elements of this collection to a string builder using start, end, and separator strings. The written text begins with the string start
and ends with the string end
. Inside, the string representations (w.r.t. the method toString
) of all elements of this collection are separated by the string sep
.
Example:
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)
scala> val b = new StringBuilder()
b: StringBuilder =
scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
Value parameters |
|
---|---|
Returns | the string builder |
Inherited from | IterableOnceOps |
Source
A method that should be called from every well-designed equals method that is open to be overridden in a subclass. See Programming in Scala, Chapter 28 for discussion and design.
Value parameters |
|
---|---|
Returns | true if this instance can possibly equal |
Inherited from | Equals |
Source
Inherited from | IterableOps |
---|
Source
Finds the first element of the collection for which the given partial function is defined, and applies the partial function to it.
Note: may not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Value parameters |
|
---|---|
Returns | an option value containing pf applied to the first value for which it is defined, or |
Example |
|
Inherited from | IterableOnceOps |
Source
Returns a new iterable collection containing the elements from the left hand operand followed by the elements from the right hand operand. The element type of the iterable collection is the most specific superclass encompassing the element types of the two operands.
Type parameters |
|
---|---|
Value parameters |
|
Returns | a new iterable collection which contains all elements of this iterable collection followed by all elements of |
Inherited from | IterableOps |
Source
Copy elements to an array, returning the number of elements written.
Fills the given array xs
starting at index start
with at most len
elements of this collection.
Copying will stop once either all the elements of this collection have been copied, or the end of the array is reached, or len
elements have been copied.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the number of elements written to the array |
Note | Reuse: After calling this method, one should discard the iterator it was called on. Using it is undefined and subject to change. |
Inherited from | IterableOnceOps |
Source@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
Copy elements to an array, returning the number of elements written.
Fills the given array xs
starting at index start
with values of this collection.
Copying will stop once either all the elements of this collection have been copied, or the end of the array is reached.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the number of elements written to the array |
Note | Reuse: After calling this method, one should discard the iterator it was called on. Using it is undefined and subject to change. |
Inherited from | IterableOnceOps |
Source@deprecatedOverriding("This should always forward to the 3-arg version of this method", since = "2.13.4")
Copy elements to an array, returning the number of elements written.
Fills the given array xs
starting at index start
with values of this collection.
Copying will stop once either all the elements of this collection have been copied, or the end of the array is reached.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the number of elements written to the array |
Note | Reuse: After calling this method, one should discard the iterator it was called on. Using it is undefined and subject to change. |
Inherited from | IterableOnceOps |
Source
Tests whether every element of this collection's iterator relates to the corresponding element of another collection by satisfying a test predicate.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns |
|
Inherited from | IterableOnceOps |
Source
Counts the number of elements in the collection which satisfy a predicate.
Note: will not terminate for infinite-sized collections.
Value parameters |
|
---|---|
Returns | the number of elements satisfying the predicate |
Inherited from | IterableOnceOps |
Source
Inherited from | IterableOps |
---|
Source
Selects all elements except last n ones.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Value parameters |
|
---|---|
Returns | a iterable collection consisting of all elements of this iterable collection except the last |
Inherited from | IterableOps |
Source
Inherited from | IterableOps |
---|
Source
Tests whether a predicate holds for at least one element of this collection.
Note: may not terminate for infinite-sized collections.
Value parameters |
|
---|---|
Returns |
|
Inherited from | IterableOnceOps |
Source
Inherited from | IterableOps |
---|
Source
Inherited from | IterableOps |
---|
Source
Finds the first element of the collection satisfying a predicate, if any.
Note: may not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Value parameters |
|
---|---|
Returns | an option value containing the first element in the collection that satisfies |
Inherited from | IterableOnceOps |
Source
Inherited from | IterableOps |
---|
Source
Inherited from | IterableOps |
---|
Source
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1
Folds the elements of this collection using the specified associative binary operator. The default implementation in IterableOnce
is equivalent to foldLeft
but may be overridden for more efficient traversal orders.
The order in which operations are performed on elements is unspecified and may be nondeterministic.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the result of applying the fold operator |
Inherited from | IterableOnceOps |
Source
def foldLeft[B](z: B)(op: (B, A) => B): B
Applies a binary operator to a start value and all elements of this collection, going left to right.
Note: will not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered or the operator is associative and commutative.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the result of inserting |
Inherited from | IterableOnceOps |
Source
def foldRight[B](z: B)(op: (A, B) => B): B
Applies a binary operator to all elements of this collection and a start value, going right to left.
Note: will not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered or the operator is associative and commutative.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the result of inserting |
Inherited from | IterableOnceOps |
Source
Tests whether a predicate holds for all elements of this collection.
Note: may not terminate for infinite-sized collections.
Value parameters |
|
---|---|
Returns |
|
Inherited from | IterableOnceOps |
Source
Apply f
to each element for its side effects Note: [U] parameter needed to help scalac's type inference.
Inherited from | IterableOnceOps |
---|
Source
Inherited from | IterableFactoryDefaults |
---|
Source
Partitions this iterable collection into a map of iterable collections according to some discriminator function.
Note: Even when applied to a view or a lazy collection it will always force the elements.
Type parameters |
|
---|---|
Value parameters |
|
Returns | A map from keys to iterable collections such that the following invariant holds: That is, every key |
Inherited from | IterableOps |
Source
Partitions this iterable collection into a map of iterable collections according to a discriminator function key
. Each element in a group is transformed into a value of type B
using the value
function.
It is equivalent to groupBy(key).mapValues(_.map(f))
, but more efficient.
case class User(name: String, age: Int)
def namesByAge(users: Seq[User]): Map[Int, Seq[String]] =
users.groupMap(_.age)(_.name)
Note: Even when applied to a view or a lazy collection it will always force the elements.
Type parameters |
|
---|---|
Value parameters |
|
Inherited from | IterableOps |
Source
def groupMapReduce[K, B](key: A => K)(f: A => B)(reduce: (B, B) => B): Map[K, B]
Partitions this iterable collection into a map according to a discriminator function key
. All the values that have the same discriminator are then transformed by the f
function and then reduced into a single value with the reduce
function.
It is equivalent to groupBy(key).mapValues(_.map(f).reduce(reduce))
, but more efficient.
def occurrences[A](as: Seq[A]): Map[A, Int] =
as.groupMapReduce(identity)(_ => 1)(_ + _)
Note: Even when applied to a view or a lazy collection it will always force the elements.
Inherited from | IterableOps |
---|
Source
Partitions elements in fixed size iterable collections.
Value parameters |
|
---|---|
Returns | An iterator producing iterable collections of size |
See also | scala.collection.Iterator, method |
Inherited from | IterableOps |
Source
def head: A
Selects the first element of this iterable collection.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Returns | the first element of this iterable collection. |
---|---|
Throws |
|
Inherited from | IterableOps |
Source
def headOption: Option[A]
Optionally selects the first element.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Returns | the first element of this iterable collection if it is nonempty, |
---|---|
Inherited from | IterableOps |
Source
The initial part of the collection without its last element.
Note: Even when applied to a view or a lazy collection it will always force the elements.
Inherited from | IterableOps |
---|
Source
Iterates over the inits of this iterable collection. The first value will be this iterable collection and the final one will be an empty iterable collection, with the intervening values the results of successive applications of init
.
Note: Even when applied to a view or a lazy collection it will always force the elements.
Returns | an iterator over all the inits of this iterable collection |
---|---|
Example |
|
Inherited from | IterableOps |
Source
Tests whether the collection is empty.
Note: Implementations in subclasses that are not repeatedly traversable must take care not to consume any elements when isEmpty
is called.
Returns |
|
---|---|
Inherited from | IterableOnceOps |
Source
Iterator can be used only once
Inherited from | IterableOnce |
---|
Source
Returns | The number of elements in this collection, if it can be cheaply computed, -1 otherwise. Cheaply usually means: Not requiring a collection traversal. |
---|---|
Inherited from | IterableOnce |
Source
def last: A
Selects the last element.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Returns | The last element of this iterable collection. |
---|---|
Throws |
|
Inherited from | IterableOps |
Source
def lastOption: Option[A]
Optionally selects the last element.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Returns | the last element of this iterable collection$ if it is nonempty, |
---|---|
Inherited from | IterableOps |
Source
Inherited from | IterableOps |
---|
Source
Finds the largest element.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the largest element of this collection with respect to the ordering |
Throws |
|
Inherited from | IterableOnceOps |
Source
Finds the first element which yields the largest value measured by function f.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the first element of this collection with the largest value measured by function f with respect to the ordering |
Throws |
|
Inherited from | IterableOnceOps |
Source
Finds the first element which yields the largest value measured by function f.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | an option value containing the first element of this collection with the largest value measured by function f with respect to the ordering |
Inherited from | IterableOnceOps |
Source
Finds the largest element.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | an option value containing the largest element of this collection with respect to the ordering |
Inherited from | IterableOnceOps |
Source
Finds the smallest element.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the smallest element of this collection with respect to the ordering |
Throws |
|
Inherited from | IterableOnceOps |
Source
Finds the first element which yields the smallest value measured by function f.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the first element of this collection with the smallest value measured by function f with respect to the ordering |
Throws |
|
Inherited from | IterableOnceOps |
Source
Finds the first element which yields the smallest value measured by function f.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | an option value containing the first element of this collection with the smallest value measured by function f with respect to the ordering |
Inherited from | IterableOnceOps |
Source
Finds the smallest element.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | an option value containing the smallest element of this collection with respect to the ordering |
Inherited from | IterableOnceOps |
Source@inline
Displays all elements of this collection in a string.
Delegates to addString, which can be overridden.
Returns | a string representation of this collection. In the resulting string the string representations (w.r.t. the method |
---|---|
Inherited from | IterableOnceOps |
Source@inline
Displays all elements of this collection in a string using a separator string.
Delegates to addString, which can be overridden.
Value parameters |
|
---|---|
Returns | a string representation of this collection. In the resulting string the string representations (w.r.t. the method |
Example |
|
Inherited from | IterableOnceOps |
Source
Displays all elements of this collection in a string using start, end, and separator strings.
Delegates to addString, which can be overridden.
Value parameters |
|
---|---|
Returns | a string representation of this collection. The resulting string begins with the string |
Example |
|
Inherited from | IterableOnceOps |
Source
Inherited from | IterableFactoryDefaults |
---|
Source@deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
Tests whether the collection is not empty.
Returns |
|
---|---|
Inherited from | IterableOnceOps |
Source
A pair of, first, all elements that satisfy predicate p
and, second, all elements that do not. Interesting because it splits a collection in two.
The default implementation provided here needs to traverse the collection twice. Strict collections have an overridden version of partition
in StrictOptimizedIterableOps
, which requires only a single traversal.
Inherited from | IterableOps |
---|
Source
Applies a function f
to each element of the iterable collection and returns a pair of iterable collections: the first one made of those values returned by f
that were wrapped in scala.util.Left, and the second one made of those wrapped in scala.util.Right.
Example:
val xs = Iterable(1, "one", 2, "two", 3, "three") partitionMap {
case i: Int => Left(i)
case s: String => Right(s)
}
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three))
Type parameters |
|
---|---|
Value parameters |
|
Returns | a pair of iterable collections: the first one made of those values returned by |
Inherited from | IterableOps |
Source
Multiplies up the elements of this collection.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the product of all elements of this collection with respect to the |
Inherited from | IterableOnceOps |
Source
def productArity: Int
The size of this product.
Returns | for a product |
---|---|
Inherited from | Product |
Source
The nth element of this product, 0-based. In other words, for a product A(x1, ..., xk)
, returns x(n+1)
where 0 <= n < k
.
Value parameters |
|
---|---|
Returns | the element |
Throws |
|
Inherited from | Product |
Source
The name of the nth element of this product, 0-based. In the default implementation, an empty string.
Value parameters |
|
---|---|
Returns | the name of the specified element |
Throws |
|
Inherited from | Product |
Source
An iterator over the names of all the elements of this product.
Inherited from | Product |
---|
Source
An iterator over all the elements of this product.
Returns | in the default implementation, an |
---|---|
Inherited from | Product |
Source
def productPrefix: String
A string used in the toString
methods of derived classes. Implementations may override this method to prepend a string prefix to the result of toString
methods.
Returns | in the default implementation, the empty string |
---|---|
Inherited from | Product |
Source
def reduce[B >: A](op: (B, B) => B): B
Reduces the elements of this collection using the specified associative binary operator.
The order in which operations are performed on elements is unspecified and may be nondeterministic.
Type parameters |
|
---|---|
Value parameters |
|
Returns | The result of applying reduce operator |
Throws |
|
Inherited from | IterableOnceOps |
Source
def reduceLeft[B >: A](op: (B, A) => B): B
Applies a binary operator to all elements of this collection, going left to right.
Note: will not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered or the operator is associative and commutative.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the result of inserting |
Throws |
|
Inherited from | IterableOnceOps |
Source
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]
Optionally applies a binary operator to all elements of this collection, going left to right.
Note: will not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered or the operator is associative and commutative.
Type parameters |
|
---|---|
Value parameters |
|
Returns | an option value containing the result of |
Inherited from | IterableOnceOps |
Source
def reduceOption[B >: A](op: (B, B) => B): Option[B]
Reduces the elements of this collection, if any, using the specified associative binary operator.
The order in which operations are performed on elements is unspecified and may be nondeterministic.
Type parameters |
|
---|---|
Value parameters |
|
Returns | An option value containing result of applying reduce operator |
Inherited from | IterableOnceOps |
Source
def reduceRight[B >: A](op: (A, B) => B): B
Applies a binary operator to all elements of this collection, going right to left.
Note: will not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered or the operator is associative and commutative.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the result of inserting |
Throws |
|
Inherited from | IterableOnceOps |
Source
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]
Optionally applies a binary operator to all elements of this collection, going right to left.
Note: will not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered or the operator is associative and commutative.
Type parameters |
|
---|---|
Value parameters |
|
Returns | an option value containing the result of |
Inherited from | IterableOnceOps |
Source
Inherited from | IterableOnceOps |
---|
Source
Computes a prefix scan of the elements of the collection.
Note: The neutral element z
may be applied more than once.
Type parameters |
|
---|---|
Value parameters |
|
Returns | a new iterable collection containing the prefix scan of the elements in this iterable collection |
Inherited from | IterableOps |
Source
Inherited from | IterableOps |
---|
Source
Produces a collection containing cumulative results of applying the operator going right to left. The head of the collection is the last cumulative result.
Note: will not terminate for infinite-sized collections.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Note: Even when applied to a view or a lazy collection it will always force the elements.
Example:
List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
Type parameters |
|
---|---|
Value parameters |
|
Returns | collection with intermediate results |
Inherited from | IterableOps |
Source
The size of this collection.
Note: will not terminate for infinite-sized collections.
Returns | the number of elements in this collection. |
---|---|
Inherited from | IterableOnceOps |
Source
Compares the size of this iterable collection to the size of another Iterable
.
Value parameters |
|
---|---|
Returns | A value The method as implemented here does not call |
Inherited from | IterableOps |
Source
Compares the size of this iterable collection to a test value.
Value parameters |
|
---|---|
Returns | A value The method as implemented here does not call |
See also | |
Inherited from | IterableOps |
Source@inline
final def sizeIs: SizeCompareOps
Returns a value class containing operations for comparing the size of this iterable collection to a test value.
These operations are implemented in terms of sizeCompare(Int)
, and allow the following more readable usages:
this.sizeIs < size // this.sizeCompare(size) < 0
this.sizeIs <= size // this.sizeCompare(size) <= 0
this.sizeIs == size // this.sizeCompare(size) == 0
this.sizeIs != size // this.sizeCompare(size) != 0
this.sizeIs >= size // this.sizeCompare(size) >= 0
this.sizeIs > size // this.sizeCompare(size) > 0
Inherited from | IterableOps |
---|
Source
Inherited from | IterableOps |
---|
Source
Groups elements in fixed size blocks by passing a "sliding window" over them (as opposed to partitioning them, as is done in grouped.)
The returned iterator will be empty when called on an empty collection. The last element the iterator produces may be smaller than the window size when the original collection isn't exhausted by the window before it and its last element isn't skipped by the step before it.
Value parameters |
|
---|---|
Returns | An iterator producing iterable collections of size |
See also | scala.collection.Iterator, method |
Example |
|
Inherited from | IterableOps |
Source
Groups elements in fixed size blocks by passing a "sliding window" over them (as opposed to partitioning them, as is done in grouped
.)
An empty collection returns an empty iterator, and a non-empty collection containing fewer elements than the window size returns an iterator that will produce the original collection as its only element.
Value parameters |
|
---|---|
Returns | An iterator producing iterable collections of size |
See also | scala.collection.Iterator, method |
Example |
|
Inherited from | IterableOps |
Source
Inherited from | IterableOps |
---|
Source
Returns a scala.collection.Stepper for the elements of this collection.
The Stepper enables creating a Java stream to operate on the collection, see scala.jdk.StreamConverters. For collections holding primitive values, the Stepper can be used as an iterator which doesn't box the elements.
The implicit scala.collection.StepperShape parameter defines the resulting Stepper type according to the element type of this collection.
For collections of
Int
,Short
,Byte
orChar
, an scala.collection.IntStepper is returnedFor collections of
Double
orFloat
, a scala.collection.DoubleStepper is returnedFor collections of
Long
a scala.collection.LongStepper is returnedFor any other element type, an scala.collection.AnyStepper is returned
Note that this method is overridden in subclasses and the return type is refined to S with EfficientSplit
, for example scala.collection.IndexedSeqOps.stepper. For Steppers marked with scala.collection.Stepper.EfficientSplit, the converters in scala.jdk.StreamConverters allow creating parallel streams, whereas bare Steppers can be converted only to sequential streams.
Inherited from | IterableOnce |
---|
Source
Returns a scala.collection.Stepper for the elements of this collection.
The Stepper enables creating a Java stream to operate on the collection, see scala.jdk.StreamConverters. For collections holding primitive values, the Stepper can be used as an iterator which doesn't box the elements.
The implicit scala.collection.StepperShape parameter defines the resulting Stepper type according to the element type of this collection.
For collections of
Int
,Short
,Byte
orChar
, an scala.collection.IntStepper is returnedFor collections of
Double
orFloat
, a scala.collection.DoubleStepper is returnedFor collections of
Long
a scala.collection.LongStepper is returnedFor any other element type, an scala.collection.AnyStepper is returned
Note that this method is overridden in subclasses and the return type is refined to S with EfficientSplit
, for example scala.collection.IndexedSeqOps.stepper. For Steppers marked with scala.collection.Stepper.EfficientSplit, the converters in scala.jdk.StreamConverters allow creating parallel streams, whereas bare Steppers can be converted only to sequential streams.
Inherited from | IterableOnce |
---|
Source
Sums up the elements of this collection.
Note: will not terminate for infinite-sized collections.
Type parameters |
|
---|---|
Value parameters |
|
Returns | the sum of all elements of this collection with respect to the |
Inherited from | IterableOnceOps |
Source
The rest of the collection without its first element.
Inherited from | IterableOps |
---|
Source
Iterates over the tails of this iterable collection. The first value will be this iterable collection and the final one will be an empty iterable collection, with the intervening values the results of successive applications of tail
.
Returns | an iterator over all the tails of this iterable collection |
---|---|
Example |
|
Inherited from | IterableOps |
Source
Inherited from | IterableOps |
---|
Source
Selects the last n elements.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Value parameters |
|
---|---|
Returns | a iterable collection consisting only of the last |
Inherited from | IterableOps |
Source
Takes longest prefix of elements that satisfy a predicate.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Value parameters |
|
---|---|
Returns | the longest prefix of this iterable collection whose elements all satisfy the predicate |
Inherited from | IterableOps |
Source
Given a collection factory factory
, convert this collection to the appropriate representation for the current element type A
. Example uses:
xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // for xs: Iterable[Int]
Inherited from | IterableOnceOps |
---|
Source
Convert collection to array.
Implementation note: DO NOT call Array.from from this method.
Inherited from | IterableOnceOps |
---|
Source@inline
Inherited from | IterableOnceOps |
---|
Source
def toIndexedSeq: IndexedSeq[A]
Inherited from | IterableOnceOps |
---|
Source
Inherited from | IterableOnceOps |
---|
Source
Inherited from | IterableOnceOps |
---|
Source
Returns | This collection as a |
---|---|
Inherited from | IterableOnceOps |
Source
Inherited from | IterableOnceOps |
---|
Source
Inherited from | IterableOnceOps |
---|
Source
Transposes this iterable collection of iterable collections into a iterable collection of iterable collections.
The resulting collection's type will be guided by the static type of iterable collection. For example:
val xs = List(
Set(1, 2, 3),
Set(4, 5, 6)).transpose
// xs == List(
// List(1, 4),
// List(2, 5),
// List(3, 6))
val ys = Vector(
List(1, 2, 3),
List(4, 5, 6)).transpose
// ys == Vector(
// Vector(1, 4),
// Vector(2, 5),
// Vector(3, 6))
Note: Even when applied to a view or a lazy collection it will always force the elements.
Type parameters |
|
---|---|
Value parameters |
|
Returns | a two-dimensional iterable collection of iterable collections which has as nth row the nth column of this iterable collection. |
Throws |
|
Inherited from | IterableOps |
Source
Converts this iterable collection of pairs into two collections of the first and second half of each pair.
val xs = Iterable(
(1, "one"),
(2, "two"),
(3, "three")).unzip
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three))
Type parameters |
|
---|---|
Value parameters |
|
Returns | a pair of iterable collections, containing the first, respectively second half of each element pair of this iterable collection. |
Inherited from | IterableOps |
Source
Converts this iterable collection of triples into three collections of the first, second, and third element of each triple.
val xs = Iterable(
(1, "one", '1'),
(2, "two", '2'),
(3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three),
// Iterable(1, 2, 3))
Type parameters |
|
---|---|
Value parameters |
|
Returns | a triple of iterable collections, containing the first, second, respectively third member of each element triple of this iterable collection. |
Inherited from | IterableOps |
Source
A view over the elements of this collection.
Inherited from | IterableOps |
---|
Source
Creates a non-strict filter of this iterable collection.
Note: the difference between c filter p
and c withFilter p
is that the former creates a new collection, whereas the latter only restricts the domain of subsequent map
, flatMap
, foreach
, and withFilter
operations.
Note: might return different results for different runs, unless the underlying collection type is ordered.
Value parameters |
|
---|---|
Returns | an object of class |
Inherited from | IterableOps |
Source
Returns a iterable collection formed from this iterable collection and another iterable collection by combining corresponding elements in pairs. If one of the two collections is longer than the other, its remaining elements are ignored.
Type parameters |
|
---|---|
Value parameters |
|
Returns | a new iterable collection containing pairs consisting of corresponding elements of this iterable collection and |
Inherited from | IterableOps |
Source
Returns a iterable collection formed from this iterable collection and another iterable collection by combining corresponding elements in pairs. If one of the two collections is shorter than the other, placeholder elements are used to extend the shorter collection to the length of the longer.
Value parameters |
|
---|---|
Returns | a new collection of type |
Inherited from | IterableOps |
Source
Inherited from | IterableOps |
---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/Option.html