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

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

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

1 数组创建

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

Array或[ElementType]

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

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

1 |  var strArray1: Array

2 |  let strArray2: [String]

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

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

第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 = ["hello","Swift"]

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

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

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

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

swift语言 数组定义_Swift3中数组创建方法相关推荐

  1. html js 数组定义,js 中数组对象的定义赋值 以及方法

    1.定义数组 var m=new Array(); var n=[]; 2.数组的赋值(两种) A. var m=new Array(2); 一个值表示数组length var m=new Array ...

  2. php一维数组的定义,PHP 数组定义、遍历的实现方法

    前言:接下来介绍的PHP学习笔记之数组的定义.遍历,希望对您有帮助.那么下面我们一起看看,具体内容所述如下: php中数组是一个特殊的数据类型,可以说是对象也可说是存储器了, 他里面可以存储php中其 ...

  3. Java学习第五天,增强for,方法重载,可变参数,数组定义及稀疏数组。

    增强for,方法重载,可变参数,数组定义及稀疏数组. 增强for package com.hyb.base;public class for_strengthen {public static voi ...

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

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

  5. python定义数组变量_python中数组用法

    增加时a.append( 'a ')就可以了.只要按顺序加,就没有问题 . 使用时,完全可以使用下标: 代码如下 复制代码 a[0] a[1] 但出果引用不存在的下标,则会引发异常.这时,你需要先添加 ...

  6. 【c语言】定义一个指针数组,指向5个不同的char型数组

    最近在准备复试的上机考试,顺便帮大一小孩做C语言作业. 其中有一道题目是将五个单词排序后输出 想到了利用<string.h>库函数中的strcmp,但是逐一比较只能找到最大值或最小值,没有 ...

  7. 51单片机C语言code定义,51单片机数组的定义方法(code与data的作用)

    数组前不加"code"或"data",则默认将数组存放在程序存储器中: code 指定数据是存储在代码区,数据是在编程的时候跟代码一起写入代码存储器,运行过程中 ...

  8. html中数组的定义,javascript中数组定义的几种方式是什么?

    javascript中怎么定义数组?下面本篇文章给大家介绍一下javascript数组定义的几种方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 1.什么是数组 数组就是一组数据 ...

  9. perl 数组引用_Perl中数组引用的魔力

    perl 数组引用 在编程世界中,如果不遇到嵌套的数据结构,您将走得很远. 例如,JavaScript对象可能如下所示: var cats = { "name":"Mr. ...

最新文章

  1. silverlight、wpf中 dispatcher和timer区别
  2. dell support
  3. ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)
  4. Kudu:为大数据快速分析量身定制的 Hadoop 存储系统
  5. c++虚函数的作用是什么?
  6. python虚拟机优化_KVM虚拟机管理及性能优化
  7. php oracle 配置,关于php:为Windows 64位配置Oracle OCI8
  8. c 子类对象 访问父类对象受保护成员_java面向对象总结
  9. 通过AO连接多个EO并进行使用
  10. linux下安装minio
  11. window.location.href = basePath + paper/deleteExpertComment.action?expertId=+$(this).prev().val();
  12. 从被动到主动,换个角度看 DB
  13. 下载python流程-Python编写win程序的操作流程
  14. 全网首发:安装Python(或其他软件)出现0x80072f7d错误的解决办法
  15. github的使用 sourceTree
  16. linux内存条查询,linux查询内存命令
  17. 第七周作业-任务分解
  18. wifi的html页面,笔记本怎么设置wifi
  19. 香橙派装php_香橙派Orange Pi 3电脑开发板如何安装安卓系统
  20. emoji表情在数据库中如何查询

热门文章

  1. 极市分享|第34期 袁源Jerry:机器学习及深度学习在自动驾驶中的应用
  2. AutoDim:自动Embedding维度寻优,如何节省70%的存储空间同时还能大幅提效?
  3. 使用ajax预加载图片
  4. 将应用交付服务引入到OpenStack-【中国IC微专栏】2016.6.16
  5. SDWebImage详解
  6. 蚂蚁变大象:浅谈常规网站是如何从小变大的(转)
  7. 数据采集技术python网络爬虫答案_高校邦网络数据采集与Python爬虫【带实验】章节答案...
  8. springboot下使用mybatis配置
  9. Java不可变类作为参数传递遇到的坑
  10. linux find批量替换java文件中字符串