作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 Swift 1.2 之前,您可以在位掩码上执行 ~
(NOT):
bitmask = ~otherBitmask
但是在 Swift 2.0 中,位掩码现在是 OptionSetType
并且您不能在 OptionSetType
上使用 ~
,您现在如何做~
对 OptionSetType
的操作?
最佳答案
您可以对原始值执行“按位非”。示例:
let otherBitmask : NSCalendarOptions = [.MatchLast, .MatchNextTime]
let bitmask = NSCalendarOptions(rawValue: ~otherBitmask.rawValue)
如果你经常需要,你可以定义一个泛型~
OptionSetType
运算符:
prefix func ~<T : OptionSetType where T.RawValue : BitwiseOperationsType>(rhs: T) -> T {
return T(rawValue: ~rhs.rawValue)
}
let otherBitmask : NSCalendarOptions = [.MatchLast, .MatchNextTime]
let bitmask = ~otherBitmask
关于swift - 如何在 OptionSetType 上执行 "~"(按位非),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31950021/
我是一名优秀的程序员,十分优秀!