使用 zip() 迭代多个数组时出现"Extra argument in call"错误



我正在尝试迭代多个数组,然后将所有内容放入另一个数组中。这是我将要循环到的类:

class Place {
var names = [String]()
var messages = [String]()
var latidudes = [Double]()
var longitudes = [Double]()
var locations = [CLLocationCoordinate2D]()
}

这是我的函数:

private func placesArrayLoop() {
let CoffeeShopNames = ["aCoffee","bCoffee", "cCoffee"]
let messages = ["message0", "message1", "message2"]
let latitudes = [40.232320, 40.232321, 40.232322]
let longitudes = [-95.388069, -95.388068, 95.388067]
for (name, message, latitude, longitude) in zip(CoffeeShopNames, messages, latitudes, longitudes) {
    let place = Place()
    place.names.append(name)
    place.messages.append(message)
    place.latitudes.append(latitude)
    place.longitudes.append(longitude)
    }
}

它给了我错误,"调用中指向 zip 数组行中的纬度的额外参数。我假设这是 swift 3 的新语法错误,但我环顾四周,找不到解决方法。但是下面的代码有效...

let strArr1 = ["Some1", "Some2", "Some3"]
let strArr2 = ["Somethingelse1", "Somethingelse2", "Somethingelse3"]
for (e1, e2) in zip(strArr1, strArr2) {
    print("(e1) - (e2)")
}

所以现在我真的很困惑。

zip()函数只接受两个参数(因此你的第二个示例有效(。http://swiftdoc.org/v3.0/func/zip/

您正在尝试传递四个参数。

最新更新