在斯威夫特4游乐场验证码:过滤字典在Xcode中失败,但成功在游乐场
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
。这是一个测试¯\_(ツ)_/¯
类的事情,还是我错过了什么?
我无法重现相同的结果。在用Xcode 9 beta 3创建的一些项目中,您的代码编译时没有问题,并生成您期望的输出。你的环境中有什么特别的东西? – OOPer
嗯。我无法想象如此。尽我所知,我正在使用Xcode的完全香草安装。感谢您确认它在您的最终编译。我会看看我能否弄清楚发生了什么事。 – Subject22