SORU
17 HAZİRAN 2009, ÇARŞAMBA


Kullanarak Scala varargs

Şu: nasıl anlamaya çalışıyorum benim saç yırtılma ediyorum

def foo(msf: String, o: Any, os: Any*) = {
    println( String.format(msf, o :: List(os:_*)) )
}

o os Seq Bir bir yöntem ayrı ayrı bildirmek zorunda olduğum bir nedeni var. Temelde, ben format yöntemi tek nesne bir parametre (tür List ) denir. Çalışırken:

def foo(msf: String, o: Any, os: Any*) = {
    println( String.format(msf, (o :: List(os:_*))).toArray )
}

Bana tip hata verir:

buldum: Dizi[Herhangi bir]

gerekli Seq[java.lang.Nesne]

Ama ilk örnek olarak hemen hemen aynı sebepten derler başarısız olan döküm denedim. Çalıştığımda

println(String.format(msg, (o :: List(os:_*)) :_* ))

bu örtülü dönüşüm belirsizlik (any2ArrowAssoc any2stringadd) ile derlemek için başarısız olur

CEVAP
17 HAZİRAN 2009, ÇARŞAMBA


def foo(msf: String, o: AnyRef, os: AnyRef*) = 
  println( String.format(msf, (o :: os.toList).toArray : _* ))

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FrameCityJackal

    FrameCityJac

    4 Aralık 2010
  • HER0R

    HER0R

    16 Aralık 2007
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011