Swift和其他语言也提供了两种类型的集合:数组和字典

数组:数组用来按顺序存储同样类型的数据,swift规定它是类型安全的,每个数组都有自己的类型也就是其它语言所说的泛型。

创建数组:

1、var aa:[String] = ["aa","bb","cc"] 或者 var aa = ["aa","bb","cc"]

2、var aa = [String]()  //空数组  aa.append("aa") //向aa数组添加一个成员。aa=[]  //清空数组

3、var a = [Double](count:5,repeatedValue:0.0)  //创建一个5个大小的数组,而且都赋值为0.0   ,因为swift类型判断的特性。还能够不用指定类型。var a = Array(count:5,repeatedValue:0.0)只是不推荐。

4、var a = [Double](count:5,repeatedValue:0.0);  var
b = [Double](count:5,repeatedValue:5.5); var c = a + b; //将两个数组项合并到一个数组中去,类型会从相加的数组中判断出来。

数组的訪问和改动:

数组的操作莫过于加项,改动项,删除项。遍历项等操作。

var aa = [String]()

推断数组是否为空。aa.isEmpty()

加到数组末尾:aa.append("test")  或者 aa += ["test1"]  或者  aa+=["test2","test3"]

插入到某一个位置:aa.insert("test2",atIndex:0)

获取某一项:下标  var tt = aa[0]

改动: aa[0] = "new test" 还能够批量改  aa[4...6] = ["a","b"]

删除项:var removeItem = aa.removeAtIndex(0) 被移除的项会返回出来。

删除最后一个var removeItem = aa.removeLast()

遍历能够用for in循环。这个到for循环的时候再嘻嘻讨论。从上面append方法就能够看出数组是可变的。当然定义为let类型就不可变了。。

字典,也就是键值对。

无序存储  Dictionary<KeyType, ValueType>   KeyType的唯一限制就是可哈希的,这样能够保证它是独一无二的。全部的 Swift 基本类型(比如String,Int, Double和Bool)都是默认可哈希的

创建:1、通过字面量创建 var aa:Dictionary<String, String> = ["a":"aaa","b":"bbb"]   当然也可省略dictionary 写成 var aa =  ["a":"aaa","b":"bbb"]

2、创建一个空字典 var aa =  Dictionary<String, String> ()  清空数据 aa = [:]
  //比数组多了一个:号

读取:

1、字典大小  aa.count  count属性

2、下标获取  var tmp = aa["a"]

改动:

1、下标改动 aa["a"] = "abc"   //a这个key存在则改动,不存在则新增。

非常智能

2、方法改动   var oldValue = aa.updateValue("bbccdd",forKey:"b")

移除

1、用nil进行移除: aa["a"] = nil 就把key为a的移除了

2、方法移除: var oldValue = aa.removeForKey("a")  a这个key和存在的数据被移除了

遍历也是用for in循环。在for循环中讨论.

swift不像oc那样只在C语言的基础上外包一层面向对象,它真的很灵活也和其它的编程语言语法很相似。要使用它easy的。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

【Swift】学习笔记(四)——设置(Collection)的更多相关文章

  1. Swift学习笔记四

    前面三篇笔记通过一些示例展示了Swift的一些特性,粗略地介绍了它的语法和特色,从这一篇笔记开始,将正式系统地介绍Swift的语法和特性了. Swift是一门为iOS和OSX开发准备的全新语言,但是它 ...

  2. Swift学习笔记四:数组和字典

      Swift 提供两种集合类型来存储集合,数组和字典. 数组是一个同类型的序列化列表集合.字典是一个能够使用相似于键的唯一标识符来获取值的非序列化集合.也就是说数组是有序的.字典是无序的. 一. 数 ...

  3. swift学习笔记(四)关于类的继承

    在swift中,继承是区分类与其它对象的基本特征 继承后的子类能够重写父类的方法,包含类方法和实例方法,属性和附属脚本(subscript) 在继承过程中,构造器方法init()是不被继承的,须要显示 ...

  4. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  5. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  6. Linux学习笔记(四) vi编辑器

    一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...

  7. MySql学习笔记四

    MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...

  8. openresty 学习笔记四:连接mysql和进行相关操作

    openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...

  9. ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁

    作者:Grey 原文地址: ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 当多个进 ...

随机推荐

  1. CSS selectors for Selenium with example,selenium IDE

    CSS selectors for Selenium with example http://seleniumeasy.com/selenium-tutorials/css-selectors-tut ...

  2. JSP内置对象之request

    书接上回,上次跟大家概括的说了说JSP的九种常用内置对象.接下来就该聊聊它们各自的特点了,今天先说说request吧. 下面是request的一些常用方法: isUserInRole(String r ...

  3. Knockout应用开发指南 第六章:加载或保存JSON数据

    原文:Knockout应用开发指南 第六章:加载或保存JSON数据 加载或保存JSON数据 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地 ...

  4. java性能缓慢

    虚拟帝国上面有很多营销软件是JAVA开发的!创业公司通常选择开源技术减少项目管理费用. 除了使用Java编程语言,创业公司也可以利用Java开发工具包的好处(JDK),Java运行时环境(JRE)和J ...

  5. swift 新功能介绍

    原文链接:http://www.cocoachina.com/applenews/devnews/2014/0617/8857.html 假设你和我一样,准备好好看看苹果的 Keynote,兴奋地准备 ...

  6. android 自己定义开关(SwitchButton)

    近期心血来潮,写了一个自己定义仿iPhone的开关. 有须要的同学能够来下载啦.支持点击自己主动滚动,速率能够自己依据须要改动.触摸滚动,大小自己定义,支持改动样式.就不录制动画,就上传了两张图给大家 ...

  7. MyEclipse建立JVM内存大小

    1.你为什么要设置JVM它的内存大小? 因为假定程序执行过JVM默认的内存大小.他们不会报告传说中的内存溢出异常. Exception in thread "main" java. ...

  8. 解决 - java.lang.OutOfMemoryError: unable to create new native thread

    工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. 一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题: 运行的环境  ...

  9. HTML学习_01

    html总结 html是一门标记语言,也就是不经过编译就能直接执行的语言,不像是c/c++/java等等须要转换成二进制码, html是一门最主要的学科,提供了一个框架,提供了各种标签和规则,使得语言 ...

  10. MSSQL只能访问特定的数据库

    让用户只能访问特定的数据库(MSSQL) 背景 客户的SQL Server实例上有多个厂商的数据库,每个数据库由各自的进行厂进行商维护, 为了限定不同厂商的维护人员只能访问自己的数据库,现需要给各个厂 ...