2010-06-28 2 views

Répondre

2

La représentation est assez facile à mettre en œuvre et vous devez faire vous-même que la mise en œuvre interne des libs Scala peut changer et vos données seraient cassés:

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 

Gardez à l'esprit que le stockage de l'ordinal dans la la base de données est fragile: Storing EnumSet in a database?. Vous devriez choisir un ordinal stabile pour chaque valeur.

+0

'/:' équivaut à 'foldLeft' – KevinO

Questions connexes