Slice

trait Slice[T] extends Int => T

Lazy and immutable slice of a sequence of values.

Type Params
T

type of the items of the sequence.

Note

As the slice usually wraps over a mutable structure, like an array or a java buffer, and it DOES NOT make an instant copy, any changes to the underlying source will directly affect the slice output unless detached. Detach is a one-time copy operation, and detached property is preserved across all operations returning a Slice.

Companion
object
trait Int => T
class Object
trait Matchable
class Any
class ArraySlice[T]
class ByteSlice
class IntSlice
class RangeMapSlice[T]

Value members

Abstract methods

def asArray: Array[T]

Returns a trimmed copy of an underlying array.

Returns a trimmed copy of an underlying array.

Returns a buffer with a copy of this Slice.

Returns a buffer with a copy of this Slice.

def detach: Slice[T]

Detaches a slice creating a trimmed copy of an underlying data, if needed. Subsequent detach operations will return the same instance without making new copies.

Detaches a slice creating a trimmed copy of an underlying data, if needed. Subsequent detach operations will return the same instance without making new copies.

def map[K](f: T => K): Slice[K]

Lazily composes mapping function and returns new Slice. Does not modify nor copy underlying array.

Lazily composes mapping function and returns new Slice. Does not modify nor copy underlying array.

def slice(from: Int, to: Int): Slice[T]

Lazily narrows Slice to provided range.

Lazily narrows Slice to provided range.

def toBuffer[T1 >: T]: Buffer[T1]

Returns a buffer with a copy of this Slice.

Returns a buffer with a copy of this Slice.

def update[T1 >: T](index: Int, value: T1): Slice[T1]

Update a value at the given index. Creates a copy of an underlying data.

Update a value at the given index. Creates a copy of an underlying data.

Concrete methods

final override
def apply(index: Int): T

Returns value at the given index.

Returns value at the given index.

Definition Classes
Function1
final
def asIterable: Iterable[T]

Returns new iterable of Slice values.

Returns new iterable of Slice values.

def copyToArray[T1 >: T](targetIndex: Int, targetArray: Array[T1]): Array[T1]

Dumps content to the array, starting from an index.

Dumps content to the array, starting from an index.

final
def count(pred: T => Boolean): Int

Counts values fulfilling the predicate.

Counts values fulfilling the predicate.

@inline
final
def drop(n: Int): Slice[T]

Lazily narrows Slice to exclude first N items.

Lazily narrows Slice to exclude first N items.

@inline
final
def dropRight(n: Int): Slice[T]

Lazily narrows Slice to exclude last N items.

Lazily narrows Slice to exclude last N items.

final override
def equals(obj: Any): Boolean
Definition Classes
Any
final
def exists(pred: T => Boolean): Boolean

Returns true if any value fulfills the predicate, or false.

Returns true if any value fulfills the predicate, or false.

final
def find(pred: T => Boolean): Option[T]

Returns Some of the first value fulfilling the predicate, or None.

Returns Some of the first value fulfilling the predicate, or None.

final
def fold(initial: T)(f: (T, T) => T): T

Combines from left to right all elements, starting with initial.

Combines from left to right all elements, starting with initial.

final
def foldLeft[R](initial: R)(f: (R, T) => R): R

Folds from left to right all elements, starting with initial.

Folds from left to right all elements, starting with initial.

final
def foldRight[R](initial: R)(f: (T, R) => R): R

Folds from right to left all elements, starting with initial.

Folds from right to left all elements, starting with initial.

final
def get(index: Int): Option[T]

Returns Some of the value at the index, or None if index outside of range.

Returns Some of the value at the index, or None if index outside of range.

final override
def hashCode(): Int
Definition Classes
Any
final
def head: T

Returns first value in the Slice.

Returns first value in the Slice.

final
def headOption: Option[T]

Returns first value in the Slice.

Returns first value in the Slice.

final
def indexIterator(pred: T => Boolean): Iterator[Int]

Returns iterator over Slice indexes of values fulfilling the predicate.

Returns iterator over Slice indexes of values fulfilling the predicate.

@inline
final
def init: Slice[T]

Returns the Slice without last value.

Returns the Slice without last value.

final
def isEmpty: Boolean

Returns true if Slice has values, otherwise false.

Returns true if Slice has values, otherwise false.

final
def iterator: Iterator[T]

Returns iterator over Slice values.

Returns iterator over Slice values.

final
def iterator(pred: T => Boolean): Iterator[T]

Returns iterator over Slice values fulfilling the predicate.

Returns iterator over Slice values fulfilling the predicate.

final
def last: T

Returns the last value in the Slice.

Returns the last value in the Slice.

final
def lastOption: Option[T]

Returns the last value in the Slice.

Returns the last value in the Slice.

@inline
final
def nonEmpty: Boolean

Returns true if Slice has values, otherwise false.

Returns true if Slice has values, otherwise false.

final
def reduce(f: (T, T) => T): T

Combines from right to left all elements.

Combines from right to left all elements.

final
def reverseIndexIterator(pred: T => Boolean): Iterator[Int]

Returns iterator over Slice indexes of values fulfilling the predicate, in the reverse order.

Returns iterator over Slice indexes of values fulfilling the predicate, in the reverse order.

final
def reverseIterator: Iterator[T]

Returns iterator over Slice values in the reverse order.

Returns iterator over Slice values in the reverse order.

final
def reverseIterator(pred: T => Boolean): Iterator[T]

Returns iterator over Slice values fulfilling the predicate, in the reverse order.

Returns iterator over Slice values fulfilling the predicate, in the reverse order.

@inline
final
def tail: Slice[T]

Returns the Slice without first value.

Returns the Slice without first value.

@inline
final
def take(n: Int): Slice[T]

Lazily narrows Slice to first N items.

Lazily narrows Slice to first N items.

@inline
final
def takeRight(n: Int): Slice[T]

Lazily narrows Slice to last N items.

Lazily narrows Slice to last N items.

final
def toArray[T1 >: T : ClassTag]: Array[T1]

Returns a trimmed copy of an underlying array.

Returns a trimmed copy of an underlying array.

@inline
final
def toList: List[T]

Returns new list of Slice values.

Returns new list of Slice values.

@inline
final
def toSeq: Seq[T]

Returns new sequence of Slice values.

Returns new sequence of Slice values.

final override
def toString: String
Definition Classes
Function1 -> Any
@inline
final
def top: Int

Returns top index value (length-1).

Returns top index value (length-1).

Inherited methods

@unspecialized
def andThen[A](g: T => A): Int => A
Inherited from
Function1
@unspecialized
def compose[A](g: A => Int): A => T
Inherited from
Function1

Abstract fields

val length: Int

Returns length of the Slice.

Returns length of the Slice.