2013-04-24 72 views
0

我有这个数组:有没有办法在scala中选择一个数组中的所有东西?

val lines: Array[LineSprite] = new Array[LineSprite](26) 

而且我希望能够在这一次选择的一切。我如何去做这件事?

我知道选择阵列中的一个元素应该是这样的: 线(0)

但我怎么选择都在一次?


该数组有26个元素。我需要改变每个元素的颜色。要做到这一点的一个元素,我会做这样的:

lines(0).setColor(Color.blue) 

而不必这些代码段为每个元素之一,我怎么能做到这一切在一次?

谢谢

+0

目前还不清楚* select *的所有元素是什么(它与原始数组有什么不同),你可以添加所需的结果吗? – 2013-04-24 20:04:12

+0

我编辑了我的问题,使其更加清晰。 – Chris 2013-04-24 20:10:09

回答

1

我想'选择'你的意思是对所有人应用相同的操作。在这种情况下,你应该使用可用的foreach方法上的所有Traversable S,这样的:

lines.foreach(_.setColor(Color.blue)) 
+0

是的,这就是我的意思。谢谢你。这正是我需要的! – Chris 2013-04-24 20:22:56

0

它通常用两种方法foreach完成(如果你执行一些副作用,如设置颜色,印花或东西其他人)或map方法(如果你在乎结果):

lines.foreach(l => l.setColor(Color.blue)) 
val squares = List(1,2,3,4).map(n => n * n) 
// squares are now List(1,4,9,16) 
// note that line below is wrong 
val squares = List(1,2,3,4).foreach(n => n * n) 
// squares now is Unit (aka void) because foreach doesn't return anything 

字面每一个内建的收集和数组定义这些方法。

+0

是的。谢谢! – Chris 2013-04-24 20:23:34

相关问题