2016-04-13 12 views
0

'da varaible'a nasıl atanır Array Tamponları ile Değişken Uzunluk Dizileri oluşturuyorum.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) 

Şimdi hata var, ben yeni değişken c Tampon atamak istiyorsanız, Tersine bir

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

b değişkeni atamak istiyoruz. c ait

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] 

cevap

1

Tipi, ArrayBuffer olarak anlaşılmaktadır ise a.toBuffer döner mutable.Buffer (o ArrayBuffer ait üst sınıfı olanı). Çok kolay düzeltme açıkça mutable.Buffer[Int] için c türünü ayarlamak için olacaktır: Ayrıca

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

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

bir yan haber olarak, bu Scala önerilmez gibi kesilebilir devlet kullanarak. Kodunuzu immutable koleksiyonları ve val s kullanarak yeniden yazmayı deneyin.