Swift数组的存取与修改

 1 对数组的存取与修改可以通过数组的方法和属性来进行,或者使用数组的下标语法。
 2
 3 要知道数组中元素的数量,可以查看它的只读属性count:
 4 println("The shopping list contains \(shoppingList.count) items.")
 5 // 输出“The shopping list contains 2 items.”
 6 使用Boolean型的isEmpty属性,可以快速检查count属性是否为0:
 7 if shoppingList.isEmpty {
 8     println("The shopping list is empty.")
 9 } else {
10     println("The shopping list is not empty.")
11 } // 输出“The shopping list is not empty.”
12 往数组的末尾添加一个元素,可以调用数组的append方法:
13 shoppingList.append("Flour")
14 // shoppingList现在包含3个元素了,看起来有人要摊薄饼啊
15 往数组末尾添加一个元素,也可以使用+=操作符:
16 shoppingList += "Baking Powder"
17 // shoppingList现在包含4个元素了
18 你也可以使用+=操作符把一个类型相同的数组连接到数组后面:
19 shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
20 // shoppingList现在包含7个元素了
21 从数组取得一个值可以使用下标语法。在数组名后面紧跟着的一对方括号中,传进去要取得的元素的索引值:
22 var firstItem = shoppingList[0]
23 // firstItem 等于 "Eggs"
24 要注意数组第一个元素的索引值为0,而不是1。Swift的数组总是从0开始索引的。
25
26 你可以使用下标语法来改变给定索引的已存在的值:
27 shoppingList[0] = "Six eggs"
28 // 这个清单的第一项现在是“Six eggs”了,而不是"Eggs"
29 你可以使用下标语法一次性改变指定范围的值,即使将要被替换掉的元素的数量和将要替换成的元素的数量不一样。下面的例子将"Chocolate Spread","Cheese"和 "Butter"替换为"Bananas"和"Apples"
30 shoppingList[4...6] = ["Bananas", "Apples"] // shoppingList现在包含6个元素
31 注意: 不能使用下标语法添加新元素到数组末尾。如果试图使用超出数组范围的下标来取用或存放一个元素,会产生运行时错误。在使用一个索引值之前,应该把它跟数组的count属性进行比较,以检测它是否有效。除非count是0(意味着这是个空数组),数组的最大有效索引总是count - 1,因为数组的索引是从0开始的。
32 插入一个元素到特定位置,可以调用数组的insert(atIndex:)方法:
33 shoppingList.insert("Maple Syrup", atIndex: 0)
34 // shoppingList现在包含7个元素
35 // 清单的第一个元素现在是"Maple Syrup"
36 本次调用insert函数,通过指明的下标0,向购物清单的开头添加了一个值为"Maple Syrup"的新元素。
37
38 类似地,你可以使用removeAtIndex方法从数组删除一个元素。该方法删掉指定索引上的元素,并返回这个被删掉的元素(如果你不需要返回值,可以忽略它):
39 let mapleSyrup = shoppingList.removeAtIndex(0)
40 // 索引为0的元素已从数组中删掉了
41 // shoppingList现在包含6个元素,不包含"Maple Syrup"
42 // 常量mapleSyrup现在等于被删掉的字符串"Maple Syrup"
43 当一个元素被删除时,数组中的不会留下任何空白无元素的地方。所以在索引0处的元素又变为"Six eggs"了:
44 firstItem = shoppingList[0]
45 // firstItem现在等于"Six eggs"
46 如果想删除数组的最后一个元素,可以使用removeLast方法,而不必使用removeAtIndex方法,这样就可以避免还得调用数组的count属性。类似removeAtIndex方法,removeLast方法也返回被删除的元素:
47 let apples = shoppingList.removeLast() // 数组的最后一个元素被删除了 // shoppingList现在包含5个元素,不包含"cheese" // 常量apples现在等于被删掉的字符串"Apples"
时间: 2024-11-09 00:33:44

Swift数组的存取与修改的相关文章

NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构

本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存对齐.Numpy内存结构 一.多维数组的存取 多维数组的存取和一维数组类似,因为多维数组有多个轴,因此它的下标需要用多个值来表示,NumPy采用组元(tuple)作为数组的下标.如二维数组需要(x, y)的元组标记一个数组元素:三维数组需要(x, y, z)的元组标记一个元素. 如下图所示,a为一个6x6的二

Swift 数组的常用操作

//数组 /* * Swift 要求一个数组要能正常使用 得满足两点 * 1,数组一定要初始化,初始化时可以赋值,也可以直接=[] 表示一个空数组 * * 2,必须要指定数据类型,可以通过赋值的方式让编译器自动识别数据类型,也可以自己指定. * */ // 我们试一下 var testArray1=[]; testArray1.append(11) 此处由于违反了 第二条没有指定数据类型,所以是错的 var testArray2:[String] testArray2.append("test&

Swift 数组

// 数组的用法 let empetyArray = []  // 空数组 let stringArray = [String]()  // 字符串数组,限定其值为字符串 let intArray = [Int]()       // 整型数组,限定其值为整型 var shoppingList = ["苹果","香蕉","西瓜","木瓜","黄瓜","冬瓜"] // 声明一个四个字符串的

numpy 多维数组的存取

多维数组的存取和一维数组类似,由于多维数组有多个轴,所以他的下标需要多个值来表示.这里讨论的主要是二维数组.二维数组0轴以行为单位,1轴以列为单位,存取数组使用元组作为下标,需要注意的是,python中的元组通常用圆括号括起来,但是其实元组的语法只需要用逗号隔开就可以.因此a[1,2]等价a[(1,2)].如果下标元组只包含整数的切片,那么得到的数组和原始数组共享数据,改变得到的数组就会改变原始数组的数据. >>> x array([[ 0, 1, 2, 3, 4, 5], [ 6, 7

ios开发之Swift标签栏按钮UITabBarItem样式修改(图标文字尺寸,颜色等)

UITabBarItem在开发中非常的常用了它可以用来设置字体颜色及图片的设置等等,下面我们来看一篇关于ios开发之Swift标签栏按钮UITabBarItem样式修改(图标文字尺寸,颜色等)的例子,具体的细节如下所示. 1,tabBarItem图片的推荐尺寸和最大支持尺寸 下面是标签栏(UITabBar)中tab按钮图标分别在1x.2x.3x下不会压缩变形的尺寸: @1x : 推荐 25 x 25   (最大: 48 x 32)@2x : 推荐 50 x 50   (最大: 96 x 64)@

[Swift] 数组恒等 === 的 bug?!

Swift 中的数组是由结构体实现的: struct Array<T> : MutableCollection, Sliceable { typealias Element = T var startIndex: Int { get } var endIndex: Int { get } subscript (index: Int) -> T func generate() -> IndexingGenerator<T[]> typealias SliceType =

当程序出现这个提示的时候,是因为你一边遍历数组,又同时修改这个数组里面的内容,导致崩溃

2014-12-17 16:22:15.838 贵金属走势[4638:150754] *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFArray: 0x799dba00> was mutated while being enumerated.' 当程序出现这个提示的时候,是因为你一边遍历数组,又同时修改这个数组里面的内容,导致崩溃,网上的方法如下

树状数组模板1——单点修改区间查询

树状数组的模板,修改单点的值,查询某个区间 1 #include<cstdio> 2 #include<cctype> 3 using namespace std; 4 5 int c[500010],n,m; 6 7 int read() 8 { 9 int x=0,f=1; 10 char c=getchar(); 11 while (!isdigit(c)) 12 f=c=='-'?-1:1,c=getchar(); 13 while (isdigit(c)) 14 x=(x

Swift 数组、字符串、集合与字典详解

今天我们来看几个最基本的数据结构:数组,字符串,集合和字典. 数组 数组是最基本的数据结构.Swift编程语言中改变了以前Objective-C时代NSMutableArray和NSArray分开的做法,统一到了Array唯一的数据结构.下面是最基本的一些实现. 1 2 3 4 5 6 7 8 9 10 11 // 声明一个不可修改的数组 let nums = [1, 2, 3] let nums = [Int](count: 5, repeatedValue: 0) // 声明一个可以修改的数