2

ArrayBuffer の二次元配列が欲しい

このようなもの:

var myRowOfStrings = new ArrayBuffer[String]
val myArrayOfRows = new ArrayBuffer[ArrayBuffer] // To store many ArrayBuffer[String]

しかし、Scala コンパイラは 2 番目の宣言を好みません。

scala> val myArrayOfRows = new ArrayBuffer[ArrayBuffer]
<console>:8: error: class ArrayBuffer takes type parameters
       val myArrayOfRows = new ArrayBuffer[ArrayBuffer]
                                       ^

構文が間違っていますか?

または、ArrayBuffer の ArrayBuffer は不可能ですか?

4

2 に答える 2

11

ArrayBufferオブジェクトにはタイプが必要です。エラーメッセージにそう書いてあります。

必要な型をコンパイラに伝える必要がありArrayBufferます。

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

scala> val myArrayOfRows = new ArrayBuffer[ArrayBuffer[String]]
myArrayOfRows: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[String]] = ArrayBuffer()

より簡単な場合は、これを行うことを検討してください。

type Row = ArrayBuffer[String]
var myRowOfStrings = new Row
val myArrayOfRows = new ArrayBuffer[Row]
于 2012-08-15T03:35:13.043 に答える
0

適用する前に ArrayBuffer をインポートします。

import scala.collection.mutable.ArrayBuffer
var e = ArrayBuffer("a", "b", "c")
scala> e: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(a, b, c)
于 2020-12-15T21:18:28.620 に答える