按位或操作

作者: liuwin7 | 来源:发表于2016-07-27 10:02 被阅读113次

1. OC 和 Swift 中的区别

OC中定义Options

typedef NS_OPTIONS(NSUInteger, OCOptions) {
    OC_Sound = 1 << 0,
    OC_Title = 1 << 1,
    OC_Vibrate = 1 << 2,
};  

Swift 中定义Options

// 需要实现OptionSetType协议  
struct SwiftOptions: OptionSetType {
  let rawValue: UInt 
  init(rawValue: UInt) { 
    self.rawValue = rawValue 
  } 
  static let Swift_Sound = SwiftOptions(rawValue: 1 << 0) 
  static let Swfit_Title = SwiftOptions(rawValue: 1 << 1) 
  static let Swift_Vibrate = SwiftOptions(rawValue: 1 << 2 )
}

** 在Swift中,可以调用OC的Options,但是,在OC中,不能调用Swift中的Options。 **

在OC中,不能调用Swift中定义的:

  • Generics- Tuples- Enumerations defined in Swift without Int raw value type
  • Structures defined in Swift
  • Top-level functions defined in Swift
  • Global variables defined in Swift
  • Typealiases defined in Swift
  • Swift-style variadics
  • Nested types
  • Curried functions

2.操作

并操作(Union)

** ObjectiveC **

OCOptions options = OC_Sound | OC_Title;

** swift **

let options = Swift_Sound.union(Swift_Vibrate)
print(options)

删除选项组合的一部分

** ObjectiveC **

OCOptions options = OC_Sound | OC_Title; // 3
// 删除OC_Sound选项OCOptions 
modifiedOptions = options & (~OC_Sound); // 2  

** swift **

let options = Swift_Sound.union(Swfit_Title) // 3  
let modifiedOptions = SwiftOptions(rawValue: options.rawValue - Swfit_Title.rawValue) // 1

相关文章

  • 按位或操作

    1. OC 和 Swift 中的区别 OC中定义Options Swift 中定义Options ** 在Swif...

  • js中小数取整的方法

    常用方法 “双按位非”操作 按位或 按位异或 左移操作符

  • ios 中的位运算

    位运算的符号:~ | & ^ << >>分别代表的是按位取反,按位或,按位与,按位异或,左移,右移 按位取反操作 ...

  • 位运算

    Java中的按位操作符有四个,分别是:&(按位与)、|(按位或)、^(按位异或)、~(按位非)。 1、先来看按位与...

  • &:按位与、|:按位或、^:按位异或、~:按位取反

    主要针对于整数运算(转换成二进制)。 &:按位与:对应位都是1 则返回 1;只要有一个不是1 则返回 0;|:按位...

  • C高阶1:二进制操作

    1. 位运算 按位运算No.操作符功能1&按位与2|按位或3~按位取反4^按位异或 运算规则pqp & qp | ...

  • 位运算运用的技巧

    Go 中的位运算符 & 按位与 ^ 一元操作为非,二元操作为异或 | 按位或 &^ 清零操作,为二元操作,a&^b...

  • &(按位与) |(按位或) ^(异或)

    不论是&、|还是^都是以二进制的形式进行比较 &(按位与) |(按位或) ^(异或)

  • 按位与 按位或

    (一)按位与& 两位全为1,结果才为10&0=0;0&1=0;1&0=0;1&1=1例如:51&5 即0011 0...

  • C:按位与、按位或、按位异或运算

    一、按位与 & 1.概念:参加运算的两个对象,按二进制位进行“与”运算,负数按补码形式参加按位与运算。2.规则 3...

网友评论

    本文标题:按位或操作

    本文链接:https://www.haomeiwen.com/subject/tqdojttx.html