2010-06-28 8 views

Respuesta

2

La representación es bastante fácil de implementar y que debe hacer esto por sí mismo como la implementación interna de las librerías Scala puede cambiar y sus datos se rompería:

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 

Tenga en cuenta que el almacenamiento del ordinal en el la base de datos es frágil: Storing EnumSet in a database?. Debe elegir un ordinal estable para cada valor.

+0

'/:' es equivalente a 'foldLeft' – KevinO

Cuestiones relacionadas