SORU
18 Mayıs 2011, ÇARŞAMBA


Ne yapar `:_*` (kolon yıldız alt çizgi) Scala?

this question kod böyle bir parça var:

def addChild(n: Node, newChild: Node) = n match {
  case Elem(prefix, label, attribs, scope, child @ _*) => Elem(prefix, label, attribs, scope, child    newChild : _*)
  case _ => error("Can only add children to elements!")
}

Oldukça açıktır her şey, bu parça dışında: child newChild : _* Ne işe yarar? Ben altında Seq[Düğüm] başka bir Düğüm ile birleştirilmiş ve daha sonra stand? : _* ne yapar?

Şimdiden teşekkürler

CEVAP
18 Mayıs 2011, ÇARŞAMBA


"" . Bu uyarıları ^sup>1sırası.

Yapıcı imzasına bak

new Elem(prefix: String, label: String, attributes: MetaData, scope: NamespaceBinding,
         child: Node*)

olarak adlandırılan

new Elem(prefix, lavel, attrs, scope,
         child1, child2, ... childN)

ama burada sadece bir dizi child1, child2, vb. bu sonuç sıra kurucu için giriş olarak kullanılır.

Mutlu kodlama.


1Bu SLS içinde şirin-adı yok, ama burada detaylar. Olsun önemli şey nasıl Scala tekrarlanan parametreleri Node* yukarıdaki ile gösterilir) ile yöntem bağımsız değişkenleri değiştirir.

_* türü açıklama"SLS. "4.6.2 Tekrarlanan Parametreleri kaplıdır

Parametre bölümü son değer parametresi ekli olabilir“”, örneğin (..., x:T *). * Yöntemin içinde böyle tekrarlanan bir parametre yazın. sıra türü scala.Seq[T]. * T tekrarlanan parametreleri ile yöntemlerin al T bağımsız değişken bir dizi . Tür yöntem m, (p1 : T1 . . . , pn : Tn,ps : S*)U bağımsız değişken uygulanır (e1 . . . k ^ nerede , ek). = n, daha sonra m uygulama türü (p1 : T1,..... alınır . . , pn : Tn,ps : S . . . , ps0S)U, k ¡ n tür olaylar ps dışında herhangi bir parametre adları olduğu S taze.Bu kuralın tek istisnası eğer son tartışmamız gerektiğini işaretlenmiş. _* türü bir açıklama ile bir dizi bağımsız değişken. M yukarıdaki argümanlar uygulanır (e1 . . . ,e0 TR:*_), o zaman bu uygulama m türü olarak ele alınır. (p1 : T1 . . . , pn : Tn,ps :scala.Seq[S])

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amir Parmar

    Amir Parmar

    25 Kasım 2010
  • Mega64

    Mega64

    24 ŞUBAT 2006
  • thenewboston

    thenewboston

    4 ŞUBAT 2008