我试图遍历多个数组,然后将所有内容放入另一个数组中。
这是我要循环学习的课程:

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/
你试图传递四个论点。

10-08 05:39
查看更多