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

  • Jack Vale Films

    Jack Vale Fi

    8 ŞUBAT 2007
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010
  • njhaley

    njhaley

    24 NİSAN 2006