SORU
16 HAZİRAN 2012, CUMARTESİ


Anlayış scala Listeleme

Numaralandırma sınıfları Scala anlamadığımı söylemeliyim. Kopyala-yapıştır belgelerden örnek verebilirim, ama ne olup bittiği konusunda hiçbir fikrim yok.

object WeekDay extends Enumeration {
  type WeekDay = Value
  val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import WeekDay._
  • type WeekDay = Value ne demek oluyor ve neden bunu yazmak zorunda mıyım?
  • Neden val Mon = Value? Bu da ne demek oluyor?
  • Neden WeekDayalmak zorunda mıyım nesne? Ve,
  • ne zaman I val day = WeekDay.Mon neden WeekDay.Value yazın yazın WeekDay mı yazıyorsun?

CEVAP
16 HAZİRAN 2012, CUMARTESİ


Enumeration Bu özellik 12 ** yazın bir üye numaralandırma (aslında bir iç sınıf değil, ama buradaki fark önemli değil) tek tek öğeleri temsil eder.

Böylece object WeekDay Bu tür üye devralır. 14* *satırı sadecediğer adı yazın. Yararlı aldıktan sonra, çünkü başka bir yerde import WeekDay._ ile bu tür, örneğin kullanabilirsiniz:

def isWorkingDay(d: WeekDay) = ! (d == Sat || d == Sun)

Bunun yerine, en az bir sürüm sadece şöyle olabilir:

object WeekDay extends Enumeration {
  val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}

ve sen yoksungerekobject WeekDay, içeriğini al ama yazın WeekDay.Value ve üyelerini bireysel hak kazanmak için kullanmak gerekir. Yani örnek olacaktı

def isWorkingDay(d: WeekDay.Value) = ! (d == WeekDay.Sat || d == WeekDay.Sun)

İkinci soru val Mon, ... = Value Anlamı Hakkında. Bu ise Enumeration uygulanması halinde görünüyorsun ama gerçekten çok kafa karıştırıcı. Bu bir tür görev değil! Bunun yerine bir korunan çağırıyoraynı ada sahip bir yöntemTür somut bir örneği Value döner , Value,.

Bu kadar olur yazabilirsiniz val a, b, c = foo Scala ve her değeri a, b c yöntemi foo denir tekrar ve tekrar. Enumeration Bu numara her değeri tek tek, böylece dahili bir sayacı artırmak için kullanır.

Enumeration Visibility: All, üzerine tıklayın için Scala API docs açarsanız bu yöntem görünen göreceksiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • Rayone GB

    Rayone GB

    14 Temmuz 2007
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007