Swift 4 Playground では、このコード:
let time = 1234
let description: String? = nil
let keyed: [String : Any?] = [
"time": time,
"description": description
]
let filtered: [String : String] = keyed
.filter{ _, value in value != nil }
.mapValues { value in return String(describing: value!) }
print(keyed)
print(filtered)
次の出力が生成されます。
["description": nil, "time": Optional(1234)]
["time": "1234"]
これはまさに私が望むものです(元の値が ではないキーと値のペアのみnil
、値がラップ解除されて文字列に変換されます)。ただし、Xcode 9 (ベータ 3) では、ビルドが で失敗し'filter' is unavailable
ます。これはベータ版¯\_(ツ)_/¯
のようなものですか、それとも何か不足していますか?