swift 空合運算符
空合運算符( ??)將對可選類型 進行空判斷,如果包含一個值就進行解封,否則就返回一個默認值 .這個運算符有兩個條件:
? 表達式 必須是Optional類型? 默認值 的類型必須要和 存儲值的類型保持一致
空合運算符是對以下代碼的簡短表達方法 a != nil ? a! : b
上述代碼使用了三目運算符。當可選類型 a 的值不為空時,進行強制解封( a! )訪問 a 中值,反之當 a 中值為空 時,返回默認值b。無疑空合運算符( ?? )提供了一種更為優(yōu)雅的方式去封裝條件判斷和解封兩種行為,顯得簡潔 以及更具可讀性。
注意: 如果 a 為非空值( non-nil ),那么值 b 將不會被估值。這也就是所謂的短路求值。
swift 求集合運算
使用 intersect(_:) 方法根據(jù)兩個集合中都包含的值創(chuàng)建的一個新的集合。使用 exclusiveOr(_:) 方法根據(jù)在一個集合中但不在兩個集合中的值創(chuàng)建一個新的集合。 ? 使用 union(_:) 方法根據(jù)兩個集合的值創(chuàng)建一個新的集合。使用 subtract(_:) 方法根據(jù)不在該集合中的值創(chuàng)建一個新的集合。
使用“是否相等”運算符( == )來判斷兩個集合是否包含全部相同的值。
使用 isSubsetOf(_:) 方法來判斷一個集合中的值是否也被包含在另外一個集合中。
使用 isSupersetOf(_:) 方法來判斷一個集合中包含另一個集合中所有的值。
使用 isStrictSubsetOf(_:) 或者 isStrictSupersetOf(_:) 方法來判斷一個集合是否是另外一個集合的子集合 或者父集合并且兩個集合并不相等。 使用 isDisjointWith(_:) 方法來判斷兩個集合是否不含有相同的值。