【发布时间】:2016-01-23 05:46:35
【问题描述】:
如果您一直在使用 Swift 1.2 并使用 Set(arrayLiteral:"...") 使用 Sets,则自动转换不会正确转换此类操作。过去在 Swift 1.2 中传递的内容在 Swift 2.0 中将失败
例如,如果您的 Swift 1.2 代码是
var charsSet:Set<Character> = Set("abcdefghijklmnopqrstuvwxyz_")
if charsSet.isStrictSupersetOf(password.lowercaseString)
{
print("true")
} else {
print("false")
}
然后转换为最新的 Swift 语法会创建此代码。
let charsSet = Set(arrayLiteral: "abcdefghijklmnopqrstuvwxyz_")
let passwordSet = Set(arrayLiteral: password.lowercaseString)
if charsSet.isStrictSupersetOf(passwordSet)
{
print("true")
} else {
print("false")
}
在这种情况下,结果将相反。在 Swift 1.2 中传递的内容现在将在 Swift 2.0 中失败
【问题讨论】: