BOOL 是一个包装类 使用结构体实现 内部包含了一个成员变量 internal var _value: Builtin.Int1
public init() 使用一个类型为int8的0._value 赋值给 成员变量 _value
public init(_ value: Bool) 简单的赋值给自己 self = value
public init(booleanLiteral value: Bool) 同上
public var description: String { get } 实现协议 CustomStringConvertible 返回字符串“true”或者“false“
public var hashValue: Int { get } 实现协议 Hashable 返回Int 0 或者 1
public static func ==(lhs: Bool, rhs: Bool) -> Bool 调用内部类的方法cmp_eq_Int1 使用成员变量_value进行比较
public init?(_ description: String) 实现协议 LosslessStringConvertible 入参 只可为字符串“true”或者“false” 并且返回读
音的Bool 返回其他的事some.none 即nil
prefix public static func !(a: Bool) -> Bool 调用内部类的方法xor_Int1 使用a._vaue 和true._value进行异或运算
public static func &&(lhs: Bool, rhs: @autoclosure () throws -> Bool) rethrows -> Bool
lhs为false直接返回false lhs为true发挥 rhs的返回值
public static func ||(lhs: Bool, rhs: @autoclosure () throws -> Bool) rethrows -> Bool
lhs为true直接返回true lhs为false发挥 rhs的返回值
@autoclosure的使用简便了使用的书写 并且把运算时间延迟到了方法内