2013-04-24 107 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

相關問題