Swift 3:不再可能使用“+”运算符连接多个字符串

时间:2016-09-14 06:46:46

标签: ios xcode string swift3 ambiguous

在swift 2.3中,我使用了这段简单的代码:

let joinedString = partOne! + PartTwo! + PartThree! + PartFour!

现在随着转换为swift 3,我一直在用最模糊的解释突然发现大约24个错误。这是其中之一:

同一行代码会出错:

Ambiguous reference to member '+'

但是,如果我将它们分开:

let OneAndTwo = partOne! + partTwo!
let ThreeAndFour = partThree! + PartFour!
let joinedString = OneAndTwo + ThreeAndFour

这很有效......他们是否删除了这样的多个字符串或是否有错误?好像编译器认为'+'是变量或其他名称相同的东西?

编辑:

即使这是另一个错误,这似乎与:This Question

有关

一旦你向上移动2个可选字符串,也会崩溃。我想可选的绑定是当时的方式。好像这个bug已经有一段时间了。

1 个答案:

答案 0 :(得分:1)

这似乎是一个错误,我将进一步调查。如果我们使用另一个运算符模拟!的行为,它就可以正常工作:

postfix operator |! {}
postfix func |! <T>(rhs: T?) -> T {
    return rhs!
}

let s1: String? = "Hello"
let s2: String? = " "
let s3: String? = "World"
let joined = s1|! + s2|! + s3|! // "Hello World"