SORU
5 EKİM 2008, Pazar


Scala içinde açık Tür Dönüşümü

Aşağıdaki kodu var diyelim:

abstract class Animal
case class Dog(name:String) extends Animal
var foo:Animal = Dog("rover")
var bar:Dog = foo //ERROR!

Peki bu kodun son satırı düzeltebilirim? Temelde, ben sadece, C gibi bir dil olması için ne yapmak istiyorsunuz:

var bar:Dog = (Dog) foo

CEVAP
5 EKİM 2008, Pazar


Kendi kendime bunu düşündüm. İki çözümü vardır:

1) açık döküm Yapmak:

var bar:Dog = foo.asInstanceOf[Dog]

2) desen eşleştirme için döküm Kullanın, bu da hataları yakalar:

var bar:Dog = foo match {
  case x:Dog => x
  case _ => {
    // Error handling code here
  }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • HBO

    HBO

    17 Mayıs 2006
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011