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

  • 07cadikiz07

    07cadikiz07

    17 EKİM 2007
  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • Gimpology.com Video Tutorials

    Gimpology.co

    3 ŞUBAT 2008