【Swift】学习笔记(四)——集合(Collection)

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语言的基础上外包一层面向对象,它真的非常灵活也和其他的编程语言语法非常相似。上手很容易的。

时间: 2024-08-29 09:52:23

【Swift】学习笔记(四)——集合(Collection)的相关文章

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

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten

Swift学习笔记四

前面三篇笔记通过一些示例展示了Swift的一些特性,粗略地介绍了它的语法和特色,从这一篇笔记开始,将正式系统地介绍Swift的语法和特性了. Swift是一门为iOS和OSX开发准备的全新语言,但是它和C以及Objective-C有很多相似的地方. Swift给所有的C语言基本类型和Objective-C类型提供了自己的包装类型,比如用Int标识integers,用Double和Float标识浮点值,String标识文本数据,Swift也提供两个主要的集合类型提供了自己的版本:Array和Dic

Swift学习笔记- 4.集合类型

数组 数组的简单语法 写数组应遵循 Array<SomeType> 这样的形式,也可以使用 [someType] 这样的简单语法.推荐使用更短的 数组构造语句 数组字面量: [value1, value2, value3] var shoppingList: [String] = ["Eggs", "Milk”] 由于类型推断机制,当我们用字面量构造只拥有相同类型数值的时候,我们不必把数组的类型定义写清楚.还可以这么写: var shoppingList = [&

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

在swift中,继承是区分类与其它对象的基本特征 继承后的子类能够重写父类的方法,包含类方法和实例方法,属性和附属脚本(subscript) 在继承过程中,构造器方法init()是不被继承的,须要显示标明 class Tandem: Bicycle { init() { super.init() maxPassengers = 2 }  } 子类仅仅能够改动从父类继承来的变量属性,而不能够改动常量let属性 关于重写override 重写方法:能够通过super.function来重写父类的方法

初探swift语言的学习笔记四(类对象,函数)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! swift扩展了非常多功能和属性,有些也比較奇P.仅仅有慢慢学习,通过经验慢慢总结了. 以下将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // C

初探swift语言的学习笔记四-2(对上一节有些遗留进行处理)

在上一节中有些问题还没有弄清,在这里自己写了一下,做了一下验证,并希望能给读者有所帮助. 看例子: 例子中包括 callback函数的声明与使用 函数作为形参进行传递 函数作为返回值 函数支持泛型,当然class也支持. import Foundation typealias Point = (Int, Int) let origin: Point = (0, 0) //初始化函数用 func willDoit(sender : CallBackManager) { println("willD

Java集合框架学习笔记之集合与Collection API

一.CollectionAPI 集合是一系列对象的聚集(Collection).集合在程序设计中是一种重要的数据接口.Java中提供了有关集合的类库称为CollectionAPI. 集合实际上是用一个对象代表一组对象,在集合中的每个对象称为一个元素.在集合中的各个元素的具体类型可以不同,但一般说来,它们都是由相同的类派生出来的(而这一点并不难做到,因为Java中的所有类都是Object的子类).在从集合中检索出各个元素是,常常要根据其具体类型不同而进行相应的强制类型转换. Collection

Swift学习笔记十四:构造(Initialization)

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态. 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值.以下章节将详细介绍这两种方法. 注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers). 一.基本语法 class Human{ var name :String init(){ name = "human" } init(n

swift学习笔记之二——集合

//=========================== //2014/7/21 17:27 swift集合 //=========================== swift提供了两种集合类型,arrays和dictionaryies,两种集合都是可变的,可以在集合声明后对其进行新增.删除和修改操作. 1.array 数组的定义与java数组相同,但swift的数组提供了更灵活的创建方式和操作方式. 数组创建和初始化方式: var array1: Array<T> = [val1,va