CharacterSet和CharacterSet.inverted打印相同

时间:2019-04-07 18:14:28

标签: swift xcode cocoa swift4.2

我只是想知道Swift中的(反转)CharacterSet如何工作。

让我们假设我具有以下两个字符集:

let invertedNumbers = CharacterSet(charactersIn: "0123456789").inverted
let numbers = CharacterSet(charactersIn: "0123456789")

当我使用打印功能登录两个字符集时,

print(numbers) 

它在控制台中显示的内容与

相同
print(invertedNumbers)

那是

<CFCharacterSet Items(U+0030 U+0031 U+0032 U+0033 U+0034 U+0035 U+0036 U+0037 U+0038 U+0039)>

但是它们怎么可能完全一样?我很困惑,因为他们不是真的。当我问反向词是否包含“ a”时,它说 true 。另一方面,没有倒立的人说 false 。而且我喜欢它的工作方式,但是倒置伐木的记录不是越野车吗?

1 个答案:

答案 0 :(得分:0)

反向字符集在Swift中也可以使用,尽管您无法真正打印出来。

例如,如果我想对一组字符进行百分比编码,那么我可以在POST中发送它:

let myPassword = "Hi+You?"
var charset1 = CharacterSet(charactersIn: "#%;<>?[\\]^'\"{|}&+")
let urlwithPercentEscapes = myPassword.addingPercentEncoding( withAllowedCharacters: charset1.inverted)
print(urlwithPercentEscapes)

当我打印urlwithPercentEscapes时,由于将显示“ withAllowedCharacters:charset1.inverted”,因此将对该字符组中的任何字符进行百分比编码。如果我使用“ withAllowedCharacters:charset1”,它将对不在该列表中的每个字符进行百分比编码。