swift dictionary.unwrap.swift
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift dictionary.unwrap.swift相关的知识,希望对你有一定的参考价值。
private func unwrapIfCan(value: Any) -> Any {
let m = Mirror(reflecting: value)
guard let displayStyle = m.displayStyle else {
return value
}
switch displayStyle {
case .optional:
break
default:
return value
}
guard let first = m.children.first else {
return NSNull()
}
return first.value
}
extension Dictionary
{
public func unwrappingValues() -> [Key: Any]
{
return reduce([Key: Any]()) { sum, e -> [Key: Any] in
var sum = sum
let value = unwrapIfCan(value: e.value)
if !(value is NSNull) {
print(value)
sum[e.key] = value
}
return sum
}
}
}
// これがやりたい
var d1: [String: Any?] = ["a": 1, "b": nil]
d1.unwrappingValues() // → ["a": 1]
// これは、unwrapValuesが、OptionalなValueしか受け付けないなら実行出来ずでOK
var d2: [String: Int] = ["a": 1]
d2.unwrappingValues() // → ["a": 1]
以上是关于swift dictionary.unwrap.swift的主要内容,如果未能解决你的问题,请参考以下文章
Swift入门系列--Swift官方文档(2.2)--中文翻译--About Swift 关于Swift
swift 示例BS swift.swift
swift swift_bug.swift
ios 整理(一)swift和oc的区别
swift swift_extension5.swift
swift swift_optional4.swift