Slice

trait Slice[T] extends Int => T

Lazy and immutable slice of a sequence of values.

Type parameters:
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.