Swift enumerate函数

来源:互联网 发布:软件功能需求文档 编辑:程序博客网 时间:2024/06/06 02:54
 

本文的Swift语言版本,1.2


先看看问题

把这两个数组合成一个字典

score = [1,2,3,4,5,6,7,8,9]dates =["7/12/15","7/12/15","7/12/15","7/12/15","7/13/15","7/13/15","7/13/15","7/13/15"," 7/14/15"] 

期望的合成后结果

var scoreDatesDictionary = ["7/12/15": [1,2,3,4]"7/13/15": [5,6,7,8]"7/14/15": [9]] 

我给出的答案:能解决问题,但是不够优雅,不够简洁,因为我对Swift很多global的函数掌握的不是很好,最近开发项目还是用OC。以后遇到了我没掌握好的,就用博客记录下来。

 let  score = [1,2,3,4,5,6,7,8,9,]    let  dates = ["7/12/15","7/12/15","7/12/15","7/12/15","7/13/15","7/13/15","7/13/15","7/13/15"," 7/14/15"]    var dic = [String:[Int]]()    for var index=0;index < dates.count; index++ {        let key = dates[index];        var value = dic[key]        if value == nil{            dic[key] = [score[index]]        }else{            value!.append(score[index])            dic[key] = value        }    }    println(dic) 

参考答案

let score = [1,2,3,4,5,6,7,8,9]let dates = ["7/12/15","7/12/15","7/12/15","7/12/15","7/13/15","7/13/15","7/13/15","7/13/15"," 7/14/15"]var dic = [String:[Int]]()for (index, date) in enumerate(dates) {    dic[date] = (dic[date] ?? []) + [score[index]]}print(dic)  // prints "[7/12/15: [1, 2, 3, 4],  7/14/15: [9], 7/13/15: [5, 6, 7, 8]]" 

enumerate 函数-Swift 1.2

遍历数组和字符串的方式,同时返回index以及数据

 let str = "Wenchen"    for (index,character) in enumerate(str){        println("\(index):\(character)")    } 

输出

0:W1:e2:n3:c4:h5:e6:n 

遍历数组的例子

 let myArray = ["Wen","Chen","Huang"]    for (index,str) in enumerate(myArray){        println("\(index):\(str)")    } 

输出

0:Wen1:Chen2:Huang
0 0