Scala 2.7'de numaralandırma Set32/Set64'ü enum setini oluşturmak için sağlar ve Long/Int'de bitsel değeri veya Long/Int'den geri ayarlanmış enum değerini kolayca alır değeri (db depolama alanını kolaylaştırır). Scala 2.8 bu sınıfları kaldırdı. 2.8 lib'de bir değişiklik var mı?Scala 2.8'de ayarlanan bir enum'un Long/Int değeri nasıl elde edilir
5
A
cevap
2
temsil uygulamak oldukça kolaydır ve değişebilir Scala kütüphanelerini iç uygulama olarak ödemeniz gerekmez gerektiğini ve verileriniz dökümü yapılır:
object WeekDay extends Enumeration {
type WeekDay = Value
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import WeekDay._
val values = Set(Mon,Wed,Fri)
require(values.length < 31)
(0 /: values) ((s, c) => s | 1 << c.id).toBinaryString
unutmayın içinde ordinal saklanması veritabanı kırılgandır: Storing EnumSet in a database?. Her bir değer için stabil bir sıra seçmelisiniz.
'/:' 'foldLeft' için eşittir – KevinO