Scala 如何设置和检查是否设置了特定位?

Scala 如何设置和检查是否设置了特定位?,scala,Scala,我有一个这样的物体: object PermissionMask { val canLogin = 1 val canAbc = 2 val canDef = 4 val canGhi = 8 } 我有一个INT类型的属性,它将保存权限值 如何检查权限是否已设置 def canLogin: Boolean = permissions & PermissionMask.canLog == ??? 我如何才能将所有权限设置在一起 per

我有一个这样的物体:

object PermissionMask {
  val canLogin = 1
  val canAbc   = 2
  val canDef   = 4
  val canGhi   = 8
}
我有一个INT类型的属性,它将保存权限值

如何检查权限是否已设置

   def canLogin: Boolean = 
     permissions & PermissionMask.canLog == ???
我如何才能将所有权限设置在一起

   permissions = PermissionMask.canLogin | PermissionMask.canAbc

要检查
canLogin
,只需将结果与零进行比较-如果用户可以登录,结果将为正:

def canLogin: Boolean = (permissions & PermissionMask.canLogin) > 0
要创建“所有权限”值-是的,您正确启动了它:

val permissions =  PermissionMask.canAbc | 
     PermissionMask.canAbc | 
     PermissionMask.canDef | 
     PermissionMask.canGhi

要检查
canLogin
,只需将结果与零进行比较-如果用户可以登录,结果将为正:

def canLogin: Boolean = (permissions & PermissionMask.canLogin) > 0
要创建“所有权限”值-是的,您正确启动了它:

val permissions =  PermissionMask.canAbc | 
     PermissionMask.canAbc | 
     PermissionMask.canDef | 
     PermissionMask.canGhi