Swift语言提供数组和字典的集合类型

 Swift 语言里的数组和字典中存储的数据值类型必须明确 ,即数组中只能存放同类型的数据。

1: 数组

数组的创建

var shoppingList: String[] = ["tset", "hell", “hell”]
var arrayInt:Int[] = [, ] var arrayIntEx  = [55, 32]//使用推理类型 //空数组的创建  var someInts = Int[]()
 println("\(someInts.isEmpty)")
//创建指定类型(Double)和个数(3)并设置初始值(0.0)
 var threeDoubles = Double[](count: 3, repeatedValue:0.0) 

数组的访问用下标访问。下标从0开始,注意不要越界了。

var arrayIntEx  = [, ]
arrayIntEx[] =
println("\(arrayIntEx[1])")

数组的可修改性是依赖var或者let控制的

数组元素个数使用 count ,isEmpty检测是否位空数组

var arrayIntEx  = [, ]
let count = arrayIntEx.count
let bFlag = shoppingList.isEmpty
println("\(count)\n\(bFlag)")

数组元素追加  append 。必须是var类型数组,而且追加的元素类型要和数组类型一致。同时也可以用 += 操作

var arrayIntEx  = [, ]
arrayIntEx.append()
arrayIntEx +=
arrayIntEx += [, ]
println("\(arrayIntEx[2])\n\(arrayIntEx[3])\n\(arrayIntEx[4])\n\(arrayIntEx[5])\n")

数组元素指定索引号插入 insert().insert在指定索引号的时候,最大为原有元素个数+现插入的元素个数-1,这样类似于在末尾添加。insert插入后,原有的元素后移动。

var arrayIntEx  = [, ]
arrayIntEx.insert(, atIndex:)
println("\(arrayIntEx)")

数组指定索引号删除 removeAtIndex

var arrayIntEx  = [, , ]
arrayIntEx.removeAtIndex()
println("\(arrayIntEx)")

数组遍历用 for in

var arrayIntEx  = [, , ]
for item in arrayIntEx {
println("\(item)")
}

如果要使用索引号和值,那用enumerate

var arrayTest = ["ax", "bx", "sx", "sxx"]
for (index, value) in enumerate(arrayTest)
{ println("Item: \(index + 1): \(value)")
}

数组拼接 如果两个数组类型一样,可以用+做拼接。当然结果的顺序和你拼接的时候的顺序时一致的

var arrayIntFirst = [, ]
var arrayIntSecond = [, ]
var arrayRes = arrayIntSecond + arrayIntFirst
println("\(arrayRes)")

2:字典

Swift 的字典使用时需要具体规定可以存储键和值类型 ,字典存储时没有顺序的,它依赖于一个可以哈希的keyValue值来查找。估计它是把keyValue哈希后作为key建立的红黑二茬树来查找的。

字典使用 Dictionary<KeyType, ValueType>定义 .KeyType要求可以哈希的,ValueType在一个字典里类型必须一致

字典创建

var airports: Dictionary<Int, String> = [: "yamide",: "soga"]//显示类型说明
var dicDefault = [:"xx", :"oo"]//使用了类型推理,这里比较特殊的是 2和3 不能用 2.0 和 3 ,它不支持类型的转换推理的
var namesOfIntegers = Dictionary<Int, String>()//空数组的创建
var dicEmpty = [:]

字典的可否修改时依靠var和let控制的

字典元素个数使用count 属性可以得到

var dicDefault = [:"xx", :"oo"]
println("\(dicDefault.count)")

字典元素的更新。可以用下标关键字添加

var dicDefault = [:"xx", :"oo"]
dicDefault[] = "tt"
println("\(dicDefault)")

如果下标添加的key是字典里已经有的,那么它会update数据.

updateValue(forKey:)方法可以设置或者更新特定键对应的值 .如果keyValue没有就添加,字典中已经有则更新

var dicDefault = [:"xx", :"oo"]
dicDefault[] = "tt"
dicDefault.updateValue("sx", forKey:)//add
dicDefault.updateValue("sbcd", forKey:)//update

删除  removeValueForKey

var dicDefault = [:"xx", :"oo"]
dicDefault[] = "tt"
dicDefault.updateValue("sx", forKey:)
dicDefault.removeValueForKey()
println("\(dicDefault)")

字典遍历 可以使用for in 遍历字典键值对。以元组形式返回

var dicDefault = [:"xx", :"oo"]
for(key, value)in dicDefault {
println("key:\(key) value:\(value)\n")
}

字典可以用 values 返回所有值 keys返回所有关键字

var dicDefault = [:"xx", :"oo"]
var keys = dicDefault.keys
var values = dicDefault.values
for key in keys {
println("key:\(key)\n")
}
for value in values {
println("value:\(value)\n")
}

Swift 集合类型的更多相关文章

  1. 浅谈Swift集合类型

    Swift 的集合表现形式由数组和字典组成.它可以完美的存储任何呢想存储的东西. 数组是一个同类型的序列化列表集合,它用来存储相同类型的不同值.字典也是一个数组,但它的存值方式类似于Map,通过一对一 ...

  2. swift 集合类型(二)

    说到swift的集合类型,就不得不谈到Dictionary.包含一个键值对组合的集合. var air = ["name":"warner","tit ...

  3. 6.Swift教程翻译系列——Swift集合类型

    英文版PDF下载地址http://download.csdn.net/detail/tsingheng/7480427 Swift提供数组和字典两种集合类型.用来存储很多值的情况.数组有序的存储一组同 ...

  4. swift 集合类型(一)

    基本的数组结构Array: var shoppingList: String[] = ["Eggs", "Milk"] 这个shoppingList和传统意义上 ...

  5. 【Swift学习】Swift编程之旅---集合类型之数组(六)

    swift提供了3种主要的集合类型,array,set,dictionary.本节介绍array. 数组是存储有序的相同类型的集合,相同的值可以多次出现在不同的位置. 注意: swift的Array类 ...

  6. Swift的基础,操作符,字符串和集合类型

    这篇文章主要讲解苹果Swift官方指南的第二章前四节的要点内容,如果想看完整的英文文档可以去苹果开发者页面下载. Basic 声明常量let 声明变量var 注释依旧使用"//" ...

  7. Swift中的集合类型

    一.引子: 在2014年10月TIOBE编程语言排行榜中,Swift位居第18位,从2014WWDC发布会首次公布至今不到半年时间,swift一直受到编程人 员的追捧,其热衷程度并不亚于当红巨星Tay ...

  8. The Swift Programming Language-官方教程精译Swift(5)集合类型 -- Collection Types

    Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组用来按顺序存储相同类型的数据.字典虽然无序存储相同类型数据值但是需要由独有的标识符引用和寻址(就是键值对).   Swift语言里的数 ...

  9. Swift 学习- 05 -- 集合类型

    // 集合类型 // swift 提供 Arrays , Sets 和 Dictionaries 三种基本的集合类型用来存储数据 , 数组(Arrays) 是有序数据的集, 集合(Sets)是无序无重 ...

随机推荐

  1. solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据

    solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据 上一节我们完成了solr连接数据库,细心的朋友会发现一个问题,就是solr其实和语言没有任何关系,配置完成后任何语 ...

  2. [计算机图形学] OpenGL读取obj文件并显示其3D效果

     读取三维网格模型(Wavefront OBJ文件) 无法向立方体:cube.obj 有法向兔子模型:bunny.obj 有法向有纹理八字模型:Eight.obj OBJ文件的格式可参考:http: ...

  3. Java基础的一次总结

    二重循环核心:就是我们学习的内容中,一直在不停的打印图形,当我们写完所有打印图形的题目后,我们站在一个 新的高度上来看二重循环解决图形问题的时候.我们知道核心思想就是:就是寻找外层循环变量i和内层循环 ...

  4. servlet servlet请求与响应

    request 客户端浏览器发出的请求被封装成一个HttpServletRequest对象.所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件,客户端的Ip地址甚至客户端操作系统都包含在Ht ...

  5. Nodejs学习笔记(十一)--- 数据采集器示例(request和cheerio)

    目录 写在之前 示例 示例要求 采集器 加入代理 请求https 写在之后... 写在之前 很多人都有做数据采集的需求,用不同的语言,不同的方式都能实现,我以前也用C#写过,主要还是发送各类请求和正则 ...

  6. iOS -iPhone5、iPhone5s、iPhone6、iPhone6Plus 屏幕适配

    现在由于苹果公司出了6和6Plus,让写苹果程序的哥们为了做兼容很头疼.用StoryBoard固然方便,但是后期做兼容要花费太多的时间和精力.使用AutoLayout虽然会在不同尺寸的屏幕下自动布局, ...

  7. hdu 1284完全背包

    http://acm.hdu.edu.cn/showproblem.php?pid=1284 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...

  8. C# winform的WebBrowser非常规编程(强烈推荐)

    本文章被今日头条推荐 1.在WebBrowser中实现抓取301和302协议 在WebBrowser中抓取301和302协议目前官方提供的组件远远不够,需要借助HttpMonitor.dll.这个组件 ...

  9. 解决真机调试时Eclipse DDMS上打不开/data目录的问题

    一般真机调试时DDMS里面的File Explorer是不能打开/data 目录的,不过也很容易解决. 1.首先手机要root.这个很简单,网上一大堆资料和软件. 2.仅仅root之后还不行,下载一个 ...

  10. 报错:ASP.NET Web API中找不到与请求匹配的HTTP资源

    当发出GET请求: GET http://localhost:54176/api/Products 报如下错: {  "message": "找不到与请求 URI“htt ...