SORU
30 AĞUSTOS 2011, Salı


Nasıl bir vaka sınıf clone örneği ve Scala yalnızca bir alan değiştirme?

Hadi kişiliklerle, farklı sosyal ağlarda insanları temsil eder bu durumda bir sınıf var diyelim. Bu sınıfın örnekleri, tamamen sabit ve değişmez koleksiyonları, sonunda Akka erkek oyuncu değişiklik yapıldı.

Şimdi, birçok alanları ile dava Dersim var, ve alanlardan biri, böyle bir güncelleme gerektiğini bildiren bir mesaj alıyorum:

case class Persona(serviceName  : String,
                   serviceId    : String,
                   sentMessages : Set[String])

// Somewhere deep in an actor
val newPersona = Persona(existingPersona.serviceName,
                         existingPersona.serviceId,
                         existingPersona.sentMessages   newMessage)

Tek bir değişiklik bile tüm alanları belirtmek için var, fark ettim. Bir şekilde existingPersona klon ve tek bir alan yerine, değişmez tüm alanları belirtmeden var mı? Bir özellik olarak yazmak ve tüm dava derslerim için kullanabilir miyim?

Eğer Persona Göster gibi bir örnek olsaydı, kolay olurdu.

CEVAP
30 AĞUSTOS 2011, Salı


case classtam olarak bu kullanım için ayrılmış copy bir yöntem ile gelir:

val newPersona = existingPersona.copy(sentMessages = 
                   existingPersona.sentMessages   newMessage)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Major FX

    Major FX

    6 HAZİRAN 2012
  • makemebad35

    makemebad35

    17 NİSAN 2006
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009