swift资源库—3—字典/集合/数组

持续更新中~~

转载注明 http://blog.csdn.net/jiang314

前言

Swift语言提供Array、Set和Dictionary三种基本的集合类型用来存储集合数据。数组是有序的数据集;集合是无序无重复的数据集;而字典是无序的键值对数组集。

image

Swift的Array、Set和Dictionary类型被实现为泛型集合。因此,它所存储的元素的类型必须是一致的,同样,我们取出来的数据类型也是明确的。

集合的可变性

如果创建一个Arrays、Sets或Dictionaries并且把它分配成一个变量,这个集合将会是可变的。这意味着我们可以在创建之后添加更多或移除已存在的数据项,或者改变集合中的数据项。

如果我们把Arrays、Sets或Dictionaries分配成常量,那么它就是不可变的,它的大小和内容都不能被改变。

若我们确定集合不需要改变,那么我们应该使用不可变集合,也就是使用let声明,那样编译器会为我们优化。

// 在swift中要让Array、Set、Dictionary类型的变量是可变的,用var声明就可以了。
// 如果不希望可变,用let声明即可。
let immutableArrray = [Int]()

// 提示:error: immutable value of type '[Int]' only has mutating
// members named 'append'
//immutableArrray.append(12)

// OK
var mutableArray = [Int]()
mutableArray.append(12)

我的博客:http://blog.csdn.net/jiang314


数组

数组使用有序列表存储同一类型的多个值,相同的值可以多次出现在一个数组的不同位置中。我们需要明确,数组是有序的,元素类型是相同的。

Swift中的Array与Foundation中的NSArray是桥接的,可以相互转换。

1、创建一个空数组

由于Swift中的数组是泛型,因此必须指定元素的数据类型:

//1、创建空数组
    
    //定义数组只能保存字符串
    var array:[String]
    //定义数组只能保存int
    var arrint = [Int]()
    //定义数组,使用结构体Array的构造写法
    var anotherEmptyArray = Array<Int>()


2、创建带默认值的数组

Swift提供了如下方法,可以创建带有默认值的数组,这个构造方法是使用count个指定元素来初始化:

//2、创建带默认值得数组
    // threeDoubles 是一种 [Double] 数组,等价于 [1.0, 1.0, 1.0]
    var threeDoubles = [Double](count: 3, repeatedValue:1.0)

3、数组相加来创建数组

两个数组能够通过加号+来创建一个合并的数组,是因为苹果为我们提供了这样的方法:

//3、数组相加 来创建数组
    //要求:遵守RRC协议 ; 两个集合的元素类型要求相同
    //数组是遵守RRC协议的.
    // anotherThreeDoubles 被推断为 [Double],等价于 [2.5, 2.5, 2.5]
    var anotherThreeDoubles = Array(count: 3, repeatedValue: 2.5)
    // sixDoubles 被推断为 [Double],等价于 [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]
    var sixDoubles = threeDoubles + anotherThreeDoubles

4、实例构造数组

我们可以使用字面量数组来进行数组构造,这是一种用一个或者多个数值构造数组的简单方法。字面量是一系列由逗号分割并由方括号包含的数值:

//4、创建实例数组
    // shoppingList 已经被构造并且拥有两个初始项。
    var shoppingList: [String] = ["Eggs", "Milk"]
    // 由于类型是明确的,因此我们可以交由编译器来推断类型数组的类型:
    var shoppingListt = ["Eggs", "Milk"]


5、访问和修改数组

常见的数组访问和修改操作有:

  • 获取数组元素个数
  • 判断数组是否为空
  • 数组追加元素
  • 数组在某个位置插入元素
  • 数组在某个范围插入元素

5.1 数组元素个数

获取数组元素的个数,可通过count属性获取:

print("The shopping list contains \(shoppingList.count) items.")

5.2 数组判断是否为空

判断数组是否为空,可以通过isEmpty属性判断,也可以通过count判断:

if shoppingList.isEmpty {
    print("The shopping list is empty.")
} else {
    print("The shopping list is not empty.")
}

// 或者通过count属性
if shoppingList.count == 0 {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值