Skip to content

Latest commit

 

History

History
26 lines (18 loc) · 897 Bytes

ARRAYS.md

File metadata and controls

26 lines (18 loc) · 897 Bytes

Using arrays

Sadly, Scala 2.10's arrays of value classes are boxed. As an alternative, io.github.karols.units.arrays package provides classes DoubleUArray[U], DoubleAArray[A], IntUArray[U], and IntAArray[A].

All of them implement IndexedSeq and can be used like standard collection classes:

val arr = DoubleUArray[metre](1.of, 2.of, 5.5.of)
val DoubleUArray(a,b,c) = arr
// a = 1 m, b = 2 m, c = 5.5 m
arr.head          // 1 m
arr(1)            // 2 m
arr(2) = 9.of     // arr(2) is no longer 5.5 m, now it's 9 m
arr.foreach(x => println(x.mkString))

You can create a new array in several ways:

  • directly, with new operator: new DoubleUArray[metre](256)

  • using fill or fillUniform methods: DoubleUArray.fill(256)(1.78.of[metre])

  • using apply method: DoubleUArray[metre](1.78.of, 1.80.of, 1.82.of)

Other methods are not yet supported.