请参阅scala中的数组模式

时间:2016-02-07 04:30:51

标签: arrays scala

val Array(direction, value, power, type, zone) = Array(1, 2, 3, 4, 5)

有没有办法从一些引用中引用Array(1,2,3,4,5),我们可以用它来执行其他数组操作,比如迭代数组等。

我想使用方向,值,功率,类型,区域,因为它们更有意义,而不是使用arr(0),arr(1)等...除了在数组上进行常规操作

4 个答案:

答案 0 :(得分:2)

如果你想让对象拥有它所包含的值的有意义的访问器,我建议只使用一个case类:

case class MyDataClass(direction: Int, values: Int, power: Int, type: Int, zone: Int)

val d = MyDataClass(1, 2, 3, 4, 5)

val dir = d.direction

要像使用传统数组一样使用它,我会将隐式转换添加到Array[Int]

答案 1 :(得分:2)

您可以按如下方式定义数组:

val arr @ Array(direction, value, power, t, zone) = Array(1, 2, 3, 4, 5)

通过这种方式,您可以将arr用作普通数组,而使用其他有意义的数据"瓦尔斯。

请注意,我将type更改为t,因为第一个是该语言的保留字。

答案 2 :(得分:1)

正常存储数组,然后将def元素作为索引存入数组。

val array = Array(1,2,3,4,5)
def direction = array(0)
// etc.

这仍然适用于其他方法,因为Scala允许方法中的方法。

答案 3 :(得分:0)

我在这里遗漏了什么吗?为什么不做呢

val arr = Array(1, 2, 3, 4, 5)`

然后在需要时将各个元素(arr(0)arr(1)等)下标?