try? 与 as? 之间的优先级问题
Tim Vermeulen 最近在 Swift Evolution 列表上,写到 if let int = try? mightReturnInt() as? Int { print(int) // => Optional(3) } 具体来说,他发现 if let int = (try? mightReturnInt()) as? Int { print(int) // => 3 } 此外,他还发现在既会返回可空值、又会抛出错误的情形下,也存在类似的问题: if let int = try? mightReturnInt() { print(int) // => Optional(3) } if let int = (try? mightReturnInt()) ?? nil { print(int) // => 3 } 对于 如果您觉得这种既有可空值又有错误抛出的情形太「罕见」的话,那么可以想一想文件系统请求,可能会抛出一个错误「目录不可读」,也可能会在指定文件不存在的时候返回
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |