Swift 快速滤波函数

Swift 快速滤波函数,swift,Swift,我正在尝试删除字典中键的空值 所以我有这样的数据: let dic = ["FirstName": "Anvar", "LastName": "Azizov", "Website": NSNull(),"About": NSNull()] let array = [dic,2,3,4] let jsonResult:[String: AnyObject] = ["FirstName": "Anvar", "LastName": "Azizov", "Website

我正在尝试删除字典中键的空值 所以我有这样的数据:

let dic = ["FirstName": "Anvar", "LastName": "Azizov", "Website": NSNull(),"About": NSNull()]
        let array = [dic,2,3,4]
        let jsonResult:[String: AnyObject] = ["FirstName": "Anvar", "LastName": "Azizov", "Website": array,"About": NSNull()]
        let jsonCleanDictionary = filter(jsonResult, {!($0.1 is NSNull)})
无法理解上述筛选函数的语法

请不要在swift中使用NSNull(),而应使用
nil
。此外,由于它是一个字典,因此添加具有null值的键是非常无用的,因为如果键不存在,字典将返回nil。因此,当检查null时,您所要做的就是

if let some = dic["key"] as? Value {
    // some now contains the value inside dic's key as a value type of Value. 
}
此外,filter函数通过获取返回布尔值的块来工作,因此:

dict.filter { (key, value) -> Bool in 
    // Do stuff to check key and value and return a 
    // bool which is true if you want that key, value pair to 
    // appear in the filtered result. 
}
在swift闭包中,如果不显式返回,参数可以获得匿名名称。这些名称的格式为
$0
$1
,等等。现在,过滤器函数仅从
CollectionType
协议中获取参数,特别是
Self.Generator.Element
。对于字典,这是一个包含键和值的元组。要访问未命名元组的成员,请根据元组成员的索引使用
.0
.1
.2
等。因此,对于字典
Self.Generator.Element
是一个包含键和值的元组。所以$0.1是指键的值,值对。希望这能稍微澄清一下这种奇怪的语法。

不要在swift中使用NSNull(),而应该使用
nil
。此外,由于它是一个字典,因此添加具有null值的键是非常无用的,因为如果键不存在,字典将返回nil。因此,当检查null时,您所要做的就是

if let some = dic["key"] as? Value {
    // some now contains the value inside dic's key as a value type of Value. 
}
此外,filter函数通过获取返回布尔值的块来工作,因此:

dict.filter { (key, value) -> Bool in 
    // Do stuff to check key and value and return a 
    // bool which is true if you want that key, value pair to 
    // appear in the filtered result. 
}

在swift闭包中,如果不显式返回,参数可以获得匿名名称。这些名称的格式为
$0
$1
,等等。现在,过滤器函数仅从
CollectionType
协议中获取参数,特别是
Self.Generator.Element
。对于字典,这是一个包含键和值的元组。要访问未命名元组的成员,请根据元组成员的索引使用
.0
.1
.2
等。因此,对于字典
Self.Generator.Element
是一个包含键和值的元组。所以$0.1是指键的值,值对。希望这能稍微澄清一下这种奇怪的语法。

ok thnx…但是在过滤器func中$0以上是闭包参数,但是$0.1是什么意思?ok thnx…但是在过滤器func中$0以上是闭包参数,但是$0.1是什么意思?