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

  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • ravinderosahn

    ravinderosah

    20 Temmuz 2009
  • RealPapaPit

    RealPapaPit

    16 Mart 2009