2013-07-24 44 views
0

如何填充集合然後向其添加一個元素而不使用可變集合或將其聲明爲var在一個表達式中生成不可變集合

換句話說我如何在下面的代碼中使用immutable集合而不是mutable.Buffer?

val values: mutable.Buffer[MyClass] = { 
    (for (i <- 1 until 10 
    ) yield MyClass(Some(i)).toBuffer 
    } 

    values += MyClass(None) 
+3

你要知道,基於該元素的索引數據是'tabulate'方法做什麼。例如,'List.tabulate(10)(i => MyClass(Some(i + 1)))''。 –

回答

7

我切換到地圖,但與-理解這應該是相同的:

val values = (1 until gridSize.size).map(i => MyClass(Some(i))) ++ Seq(MyClass(None), ...) 
+0

只是爲了它的樂趣,同樣用於: 'val value =(for(i < - (1 until 10).toList)yield MyClass(Some(i)))::: MyClass(None):: Nil' – rompetroll

相關問題