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

  • Commander Chalkboard

    Commander Ch

    20 Ocak 2014
  • Djbasilio AuToBaSs

    Djbasilio Au

    20 Aralık 2008
  • The Fashion Sight

    The Fashion

    22 AĞUSTOS 2011