Swift入门(3)

1.数组

Swift 数组使用有序列表存储同一类型的多个值。相同的值可以多次出现**在一个数组**的不同位置中。

Swift 数组会强制检测元素的类型,如果类型不同则会报错,Swift 数组应该遵循像Array<Element>这样的形式,其中Element是这个数组中唯一允许存在的数据类型.

1.1数组的创建

swift中数组可以和C语言一样直接进行创建,基本格式为:

var 数组名 = [数组内的数据(用逗号进行隔开)];

如:

注意:这里是用中括号[ ]括起来的,不是花括号 {}

此外,数组还可以进行如下定义:508c3a302e0d4f8eaaac4f4c8fc8f5ec.png

1.2数组的访问

swift中数组的下标为Index(索引)值,内容为value值.

我们可以通过数组的下标访问数组,基本语法如下:

var 变量名 = 数组名[](里面输入数组对应的索引值,一般从0开始,分别对应数组中各个元素)。

另外,swift中还支持使用.first等名称来访问数组,如:461bc3aa45c444c1a7fca99723ca5d11.png

 

此外,要是我们想输出数组的每一个元素,那么可以使用以下语句:cd40893d6924487ab214b88c358d2cb6.png

1.3数组元素的插入和删除

(1)插入替换

在swift中,如果我们想对数组进行元素的增加,一般我们有以下两种方法,使用append()和insert**()**;

append()对数组是在最后添加,而insert()则是可以指定位置的插入。如:10a13c0a0ea34be2a5634d30f54379cb.png

append()的作用还可以通过数组的直接加减得到:d92d6c9056b1402b983392b02ae9cc11.png

但在上述写法中,除了数组直接的加减,append和insert均只能加入一个元素,如果我们要加入多个元素,那么就可以使用下列语句:

数组名.insert/append(contentsOf:[添加的元素],(at:))

如:

2743625ea9f84ea5a4b16947bea2914f.png

如果我们想替换数组中的元素而不是插入元素,这时就要使用一个新的语句replaceSubrange(),基本格式为:

数组名.replaceSubrange(要替换的元素位置,with:[替换的元素])

其中替换元素位置可以写多个,也可以写区间形式(区间形式不需要加括号)。

(2)删除

如果我们不小心多插入了元素或者替换错了元素,我们可以用remove()来进行删除。如:

dd7f8aad6b4340bd8c1f7b02f52bde6d.png

1.4数组的查找

对于一个数组,如果我们想知道他之中有没有我们想要的元素,但又不想一个个的去看,那么我们就可以使用下列语句:

数组名.contains(查找的元素)

如在上面图中我们要查找“大象”是否在数组里面:

417db3e803aa4819831970412e9b435b.png

返回值为true,代表该元素存在数组里面。如果我们查找该元素所在的Index值,则可以使用下列语句:

831d1be75e964baa88d39fbf9e44a32a.png

同理可以用lastIndex查找最后一个符合条件元素的索引值。

2.集合<set>

集合(Set)是用来存储相同类型没有确定顺序、且不重复的值。 

也就是说当元素顺序不重要时,或者希望确保每个元素只出现一次时,可以使用集合而不是数组。

2.1集合的声明

集合的声明一般有以下两种方法:

var 变量名:set<数据类型> = [元素]//数据类型可不写
var 变量名 = set([元素])

也如果要将数组转换为集合,只需将数组的变量名写入set()中即可,如:

275ecc4a8022488c88f29f1262a47d75.png

2.2 集合的输出

前面提到过,集合是具有不重复性无序性,如果我们将上述数组a里面的元素增添一个4,b还是为a的集合,分别对b和a进行输出:a1b763c299a446529b57390dce7a9da9.png

可以发现,b输出的值中只有一个4,且顺序与a不同,如果进行多次输出,b几乎每一次都是不同的顺序,这表明了集合的不重复性无序性。

 

2.3集合的运算

因为集合的特性,集合的运算与数组的运算不同,与数学上集合的运算十分相似。

740c6264d35c454cb5e6c0ae14a79613.png

在swift中,我们有以下语句与之对应:

26e20dca87294b7e92025b794250a26d.png

 

但如果我们不知道a和b的关系,那么就无法准确的对a和b进行运算。

swift中对此也提供了相应的函数来解决这个问题:

b64ebb36f2834c01a51c3da519156f9b.png

 

3.循环

有的时候,我们可能需要多次执行同一块代码,一个一个敲又过于复杂,这时就需要用到循环语句。

swift中循环有以下几种类型:for..in循环,while循环,repeat...while循环。

3.1 for -in循环

基本语法如下:

for 变量名 in 序列名(也可以直接写区间){}

如:

955f0ec6ae0e4be5a58af2082c4bb157.png

可见,我们将序列内的所有元素打印了出来,如果我们不想每个都打印,又不想使用条件语句,那么可以使用stride函数,如:4c9f2589364743f58f55fdfe791935fa.png

注意:stride(from: ,to:,by:)中对于to中的元素是不包含在内的,相当于开区间,而如果我们想包含在内可以将to改为through。

3.2 while循环

for—in循环一般用于遍历元素,一般从头到尾进行一次,如果我们要进行多次的来回循环,一般使用while循环,基本语法如下:

while 条件 {执行内容
}

如我们要将0到10的偶数打印出来:876dcaee6ca9445895fbddbc4a396844.png

3.3 repeat -while循环

repeat-while循环与while循环十分相似,唯一不同的是repeat-while循环时先执行语句,再进行判断,基本语法如下:

repeat{
执行语句
} while 条件

如果我将上述语句中的a赋值为12,放在repeat-while中:

068aa74100d84061a360e3ee2b0cc5e0.png

可见,哪怕开始时a已经大于10了,语句仍然先执行了一遍。

 

此外,在循环体中,若是我们不想让循环走完所有符合的范围(或语句),我们可以使用break(跳出该循环)continue(跳过后面的所有语,进行下一次循环),这样可以简化程序的复杂度。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值