地图功能说明

Map function explanation

有人可以给我解释一下那段代码,因为我不太理解。我找到了这段代码,但我特别不能理解这一行:Room(dict: $0)

var rooms: [Room] = [] // The globale variable

func refresh() {
    let request = URLRequest(url: URL(string: "\(Config.serverUrl)/rooms")!)
    NSURLConnection.sendAsynchronousRequest(request, queue: OperationQueue.main, completionHandler: { resp, data, err in
        guard err == nil else {
            return
        }
        let rooms = try! JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions()) as! [[String: AnyObject]]
        self.rooms = rooms.map {
            Room(dict: [=10=]) // I can't understand this line
        }
        self.tableView.reloadData()
    })
}

我的房间结构:

struct Room {

var key: String
var title: String
var cat: String!

init(dict: [String: AnyObject]) {
    title = dict["title"] as! String
    key = dict["key"] as! String
    cat = dict["cat"] as! String
}

init(key: String, title: String, cat: String) {
    self.key = key
    self.title = title
    self.cat = cat
}

func toDict() -> [String: AnyObject] {
    return [
        "title": title as AnyObject,
        "key": key as AnyObject,
        "cat": cat as AnyObject
    ]
}
}

如果有人能帮我理解和解释一下,谢谢

map 函数遍历集合中的每个项目,并对集合中的每个元素应用一个操作。

这段代码

self.rooms = rooms.map {
    Room(dict: [=10=])
}

是这个的缩写形式。

// `dict` paramater is `[=11=]` in shorter form
self.rooms = rooms.map { (dict : [String: AnyObject]) -> Room in
    return Room(dict: dict)
}