2016-04-13 14 views
0

配列バッファを持つ可変長配列を作成しています。ArrayBufferをscala内の変数に割り当てる方法

import scala.collection.mutable.ArrayBuffer 

val b = ArrayBuffer[Int]() // empty array! 
b += (1, 2, 3, 5) // append and output: ArrayBuffer(1, 2, 3, 5) 

は今、私はエラーがある、私は新しい変数cにバッファを割り当てたい場合は、逆に

var a = Array[Int]() // a(0) = 10 // error because a is empty array 
a = b.toArray // Array(1, 1, 2) 

に変数bを割り当てます。しばらくa.toBufferリターンmutable.Bufferc

var c = ArrayBuffer[Int]() 
c = a.toBuffer // Conversely, convert the array a to an array buffer. 
<console>:8: error: missing arguments for method apply in class GenericCompanion; follow this method with `_' if you want to treat it as a partially applied function 
var c = ArrayBuffer[Int] 

答えて

1

タイプは(それがArrayBufferのスーパークラスの一つだ)、ArrayBufferと推察されます。だから、簡単な修正はmutable.Buffer[Int]cの明示的に設定するタイプになります。

import scala.collection.mutable 
import scala.collection.mutable.ArrayBuffer 

var a = Array[Int]() 
var c:mutable.Buffer[Int] = ArrayBuffer[Int]() 
c = a.toBuffer 

また、サイド通知として、次のように変更可能な状態を使用すると、Scalaで推奨されていません。不変なコレクションとvalを使用してコードを書き直してください。