转载自:http://blog.csdn.net/bwf_erg/article/details/70858865

数组是由一组类型相同的元素构成的有序数据集合。数组中的集合元素是有

序的,而且可以重复出现。

1 数组创建

在Swift语言中,数组的类型格式为:

Array<ElementType>或[ElementType]

其中Array<ElementType>中的ElementType表示数组的类型,< ElementType >是泛型写法。[ElementType]是一种简写方式。两者表示的功能是一样的,我们更偏向于使用简写形式,本书里所有数组类型都是使用简写形式。

下面我们来创建一个String类型的数组

1 |  var strArray1: Array<String>

2 |  let strArray2: [String]

在声明一个数组的时候可以使用let和var进行修饰,其中let表示不可变数组,var表示可变数组。

第1行代码声明了一个类型为Array<String>的可变数组strArray1。<String>是泛型,说明在这个数组中只能存放字符串类型的数据。

第2行代码声明了一个类型为[String]的不可变数组strArray2。[String]也是声明一个只能存放字符串类型的数组。

接下来我们来学习如何创建一个空数组。

1 |  var emptyStrs= [String]()

2 |  let emptyInts = [Int]()

创建一个数组需要对数组进行声明和初始化。上述第1行代码我们创建了一个String类型可变空数组emptyStrs。其中我们var声明表示该数组是可变数组,中括号[]里面的值String表示数组的类型。[String]()是对数组进行初始化,只不过没有任何元素。

第2行代码与第1行代码同样是创建一个空数组emptyInts,区别在于我们用let声明了一个不可变数组,该数组的类型是Int类型。let声明的数组是不可变数组,必须在声明的同时进行初始化,一旦初始化,就不可以被修改。

最后我们来学习如何创建非空数组。示例代码如下:

1 |  var strArray1: Array<String> = ["hello","Swift"]

2 |  var strArray2: [String] =  ["hello","swift"]

3 |  let strArray3 = ["hello","swift",15]

上述代码都是对数组进行声明和初始化,数组的类型是通过冒号(:)指明数组的类型。数组中的元素由一对中括号([])括起来,数组中的元素之间用逗号分隔。

第1行代码是使用标准模板方式声明是一个String类型的可变数组strArray1,并初始化值为["hello","swift"]。其中尖括号<String>表示数组的类型,表示strArray1只能存放String类型的元素。

第2行代码是采用简写形式显式声明可变数组strArray2。[String]表示数组的类型,表示strArray2只能存放String类型的元素。

第3行代码声明了一个不可变数组,这里没有指明数组的类型,采用的是隐式推断。根据初始化数组的值推断出数组的类型。在strArray3数组中我们存放了String类型的"hello","swift"以及Int类型的15。在没有明确指定数组类型,我们可以在数组中存放不同类型的元素。

不可变数组在访问效率上比可变数组要高,可变数组通过牺牲访问效率换取可变。当我们可以确定数组是不需要修改的,我们应该将它声明为let。如果数组内容需要改变。我们需要将它声明为var。

此外,如果数组中存储多个相同的元素,我们可以通过以下方法快速创建该数组:

1 |  var threeDoubles = Array(repeating: 0.0, count: 3)

此时threeDoubles数组的内容为[0.0,0.0,0.0]

转载于:https://www.cnblogs.com/winterfells/p/7441607.html

Swift3中数组创建方法相关推荐

  1. swift语言 数组定义_Swift3中数组创建方法

    转载自:http://blog.csdn.net/bwf_erg/article/details/70858865 数组是由一组类型相同的元素构成的有序数据集合.数组中的集合元素是有 序的,而且可以重 ...

  2. matlab中数组创建方法

    创建数组可以使用 分号 :  逗号, 空格 数组同行用 逗号,或空格分割 不同行元素用 分号: 1 clc; 2 a = [1 2 3 4 5]; 3 b1 = a(3);%第3个元素 4 b2 = ...

  3. java二维数组的创建,java二维数组创建方法

    java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法 二维数组的定义 type arrayName[ ][ ]; typ ...

  4. js中数组map方法的使用和实现

    js中数组map方法的使用和实现 MDN中定义 map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值. 语法 var new_array = arr.map(fun ...

  5. java中executorservice_java中ExecutorService创建方法总结

    在对线程进行控制时,Executor虽然能够对其进行管理,但是缺少终止的功能,所以我们要用到Executor的进阶方法ExecutorServic来处理.ExecutorServic也是一种接口,相比 ...

  6. 请尽可能说出js中数组的方法,最少3个,越多越好

    我接下来要把数组方法全都过一遍,顺手做个整理. 至于为什么整理这个,最近总听说面试经常会问到这个问题, 面试官灵魂发问:请尽可能说出js中数组的方法,最少3个,越多越好 据可靠消息了解到,如果你回答的 ...

  7. java中数组赋值方法

    Java中数组赋值方法,以及为什么不能使用a = b //这里定义两个长度相同的数组,其中数组二为空 int[] arr1 = new int[]{1,2,3,4,5,6,0,0,0,0}; int[ ...

  8. js中数组indexOf方法的使用和实现

    js中数组indexOf方法的使用和实现 IndexOf方法定义 indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1. IndexOf方法语法 arr.inde ...

  9. [转载] pandas中Series数组创建方法

    参考链接: 访问Pandas Series的元素 import numpy as np import pandas as pd ar = np.random.rand(5) # s = pd.Seri ...

最新文章

  1. 【Spring学习笔记】之【2.3Ioc配置使用】
  2. less14 颜色函数2
  3. 二十八、layui的日历组件使用
  4. 利用Reachability实现网络状态监听
  5. html中flash的使用,[转载]flash中可以使用的HTML标签[有用]
  6. 汉诺塔java程序_Java编写一个汉诺塔的过程
  7. 一文看懂边缘云在广电行业的应用
  8. AsyncTask 异步任务基本使用-下载视频
  9. python 3.8.0版本的skimage库是什么_python的skimage库 图像读取显示
  10. vmware+player+12+linux,Vmware player 12
  11. VC调用Lingo并转化成 QT 工程编写一个特定的解决线性问题的软件
  12. matlab官网上的命令,MatLab 2018a 官方教程
  13. 一款开源的协作文本编辑器
  14. mac java 创建文件夹_在mac电脑上创建java的一些简单操作
  15. Windows下安装Redis及可视化工具
  16. 蚂蚁金服开放平台-支付宝新版接口的参数设置
  17. STM32学习笔记(十七)TLTLCD显示实验
  18. 钉钉群机器人消息通知
  19. 词云python灿烈_如何用Python做中文词云?
  20. wireshark出现rst的原因_Wireshark过滤器的使用

热门文章

  1. 计算机组成原理实验八报告,计算机组成原理实验报告-八位补码加减法器的设计与实现.docx...
  2. python完整安装顺序_Python安装与卸载流程详细步骤(图解)
  3. 交叉熵(cross_entropy)作为损失函数在神经网络中的作用
  4. Opencv3编程入门学习笔记(四)之split通道分离Debug过程中0xC0000005内存访问冲突问题
  5. 电路分析导论_生存分析导论
  6. 迁移学习 迁移参数_迁移学习简介
  7. build linux kernel
  8. 代码覆盖率测试工具:gcov和lcov的使用
  9. TeamViewer远程访问
  10. 迅雷第四季度净亏损3240万美元 环比亏损幅度扩大