2017-12-07 22 views
0

はだから、いくつかのデータを持って取得:配列のインデックスにある要素[(配列[文字列、ロング)]

val data = Array[(Array[String], Long)] 

各ペアは他の配列と数から成る対の配列、されています。

var x = ListBuffer[(Array[String], Long)] 

私はxに、いくつかのインデックスiに要素を追加したいと思います:次のように私はListBufferを作成しました。私は次のようにします。

x += data(i) 

をしかし、私はエラーを取得する:

Type mismatch, expected: String, actual: (Array[String], Long)

は私が間違って何をしているのですか?私はIntelliJとScala 2.10.7で作業しています。

も(具体的な例である(私は元の例を提供することはできません))この例では、同じエラーを与える:

val xData = ListBuffer[(Array[String], Long)] 
    var x = ListBuffer[(Array[String], Long)] 
    x += xData(0) 
+0

は、あなたが完全な例を提供していただけますか? – P3trur0

+0

私は別の例を追加しましたが、同じエラー、それは具体的です – osk

答えて

0

を与えていないので、問題は、私はListBuffer開始の最後にブラケットを忘れてしまったということでした。

これは動作します:

var x = ListBuffer[(Array[String], Long)]() 
+0

変数にdataTypesを割り当てることはできませんか? –

+0

どういう意味ですか? – osk

+0

'ListBuffer [(Array [String]、Long)]'はデータ型を定義しているので、データ型を代入することはできません。 ':'を 'var x:ListBuffer [(Array [String]、Long)] =実際の値として': 'を使ってデータ型を定義することができます –

1

私はちょうど今、ScalaのREPLで同じことを試してみましたが、それがありますうまく動作します。私が何をしたか

がある -

scala> val arr = Array("Hello", "Bye") 
    arr: Array[String] = Array(Hello, Bye) 

    scala> var data = Array((arr,1), (arr,2)) 
    data: Array[(Array[String], Int)] = Array((Array(Hello, Bye),1), 
    (Array(Hello, Bye),2)) 

    scala> import scala.collection.mutable.ListBuffer 
    import scala.collection.mutable.ListBuffer 


    scala> val list = ListBuffer((arr, 1)) 
    list: scala.collection.mutable.ListBuffer[(Array[String], Int)] = 
    ListBuffer((Array(Hello, Bye),1)) 


    scala> list += data(0) 
    res1: list.type = ListBuffer((Array(Hello, Bye),1), (Array(Hello, 
    Bye),1)) 

それはすべてのエラーに

+0

Hmm、それは奇妙です。 – osk

+0

私は配列を作成し、ListBufferを作成するためにそれを使うと、配列が何であるかわからないという。だからあなたの例が壊れている – osk

+0

変数を作成する方法にはいくつかの問題があるはずです。 –

関連する問題