如何设置和检查是否设置了特定位?
问题描述:
我有这样一个对象:如何设置和检查是否设置了特定位?
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