swift 初见-5集合类型
// Playground - noun: a place where people can play import UIKit var str = "Hello, playground" // swift的集合类型只有数组和字典 // 数组中只能存储相同类型的数据(可以是基本类型,也可以是类对象) // 申明方法 [String] Array<String> // 一旦隐是声明后,他的类型就确定了,不能在存储其他类型的数据了 var array=["a","b"] var array1:[String]=["a","b"] var array2:Array<String>=["a","b"] array[0]="aaa" array var array4=[Int]() var string=String() var array5=Array<String>() // 这样不会报错,但是没有申明具体的类型,它默认的会是OC中得NSArray类型的数组,所以这样定义的数组已经失去了它的意义了,没法做太多操作 // var array6=[] //array6.append(3) //error: 'NSArray' does not have a member named 'append' // 清空数组 array1=[] // 清空后并不能改变它能存储的数据类型 array1.append("ccc") array1=[String]() array1=Array<String>() // 创建并初始化 var array6=[Int](count: 10, repeatedValue: 0) array6.append(100) array6 // 合并数组 var array7=[1,2,3] var array8=array6 + array7 array8 array8 += [4,5] println(array8) array8.removeAtIndex(14) // insert ,romove 方法和其他的差不多 array8.removeLast() // 注意index都要在索引值内部 // 批量替换,注意是三个点号 array8[2...4] = [2,2,2] array8 array8[2...4]=[100] // 不需要元素个数与修改的个数相匹配 array8 //array8[2...4]=0 // 这样写是错误的 for index in 0...array.count { println(index) } for item in array { println(item) } // 使用enumerate函数 for (index,item) in enumerate(array) { println("\(index)-\(item)") } // dictionarys 字典是无序的 var dictionarys=[1:"a",2:"b"] // 隐式声明 // 存储的键和值可以任意类型 // 一个字典只能存储固定的一种键和值的数据类型搭配 (!!特别重要) // Dictionary<Int,String> // 显示声明 // 注意分割符是 , 号而不是: 号 var dict1:Dictionary<Int,String>=[1:"bbb"] println(dict1) // 这里分割是 : 号 并不是 , 号 var dict2:[Int:String]=[1:"aaa"] // var dict3:[Int , String]=[1:"aaa"] // 错误 println(dict2) // 清空字典 var dict3=Dictionary<Int,String>() var dict4=[Int:String]() // 简便方法清空字典 dict2=[:] // 同样清空并不能改变一个字典可以存储的数据类型 dictionarys.count dictionarys.isEmpty dictionarys[1] //可选型数据, // "hahha"+dictionarys[1] //错误写法 "hahha"+dictionarys[1]! // 正确 // key是不可重复的 // 插入新值 dictionarys[3]="c" // 插入无对应的新key和值 println(dictionarys) // 修改 dictionarys[3]="3c" var oldValue=dictionarys.updateValue("3ccc", forKey: 3) // 删除 dictionarys[3]=nil println(dictionarys) dictionarys.removeValueForKey(2) //有返回值的,返回被删除的值 // 遍历字典 for (key,value) in dictionarys { println("\(key) : \(value)") } dictionarys.keys dictionarys.values for key in dictionarys.keys { println(key) } for value in dictionarys.values { println(value) } // let 型数组或者字典定义后是不可以有任何更改操作的