Swift3创建数组

Swift3创建数组数组是由一组类型相同的元素构成的有序数据集合。数组中的集合元素是有序的,而且可以重复出现。1 数组创建在Swift语言中,数组的类型格式为:Array或[ElementType]其中Array中的ElementType表示数组的类型,是泛型写法。[ElementType]是一种简写方式。两者表示的功能是一样的,我们更偏向于使用简写形式,本书里所有数组类型都是使用简写形式。下

大家好,又见面了,我是你们的朋友全栈君。  
Swift3创建数组

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

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

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://javaforall.net/140624.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 2020年软件测试前景_转行学软件测试的下场

    2020年软件测试前景_转行学软件测试的下场作为一名软件测试工程师,汇智妹可以负责任地告诉你:自信点,把“吗”去掉!为什么?本篇文章将从以下三个维度来为你解读:1.关于软件测试软件测试属新兴职业,且随着目前国内软件产业规模越来越大,软件行业也早已突破传统的作坊式生产,从单打独斗的开发模式升级为工业化、流水线式的生产模式,从而导致专业的软件测试人才需求缺口巨大。作为工业化产品质量的“把门”者,软件测试工程师已成为软件开发企业必不可少的技术人才。目前国内软件测试和开发人员比例大约在1:4~1:5,而国外测试和开发人员比例为1:1,由此

    2022年9月11日
  • 实战篇-OpenSSL之TripleDES加密算法-CFB64模式[通俗易懂]

    本文属于《OpenSSL加密算法库使用系列教程》之一,欢迎查看其它文章。实战篇-OpenSSL之TripleDES加密算法-CFB64模式一、TripleDES简介二、CFB64模式1、命令行操作2、函数说明3、编程实现(1)特别注意(2)实现CFB64模式加解密(3)测试代码一、TripleDES简介3DES又称TripleDES,是DES加密算法的一种模式,它使用2条不同的56位的密钥对数据进行三次加密。数据加密标准(DES)是美国的一种由来已久的加密标准,它使用对称密钥加密法,并于1981年

    2022年4月8日
  • css 实现水平居中的方法总结

    css 实现水平居中的方法总结

    2021年6月13日
  • gis地理加权回归步骤_地理加权回归权重

    gis地理加权回归步骤_地理加权回归权重内容导读1)回归概念介绍;2)探索性回归工具(解释变量的选择)使用;3)广义线性回归工具(GLR)使用;*加更:广义线性回归工具的补充内容4)地理加权回归工具(GWR)使用+小结。说明:本节是这个学习笔记最后一部分。PART/04地理加权回归工具(GWR)使用上一节我们讲了GLR广义线性回归,它是一种全局模型,可以构造出最佳描述研究区域中整体数据关系的方程。如果这些关系在研究区域中是一致的,则GLR回归方程可以对这些关系进行很好的建模。不过,当这些关系在研

    2022年10月6日
  • 产品模块化设计_pom设计模式

    产品模块化设计_pom设计模式对于,ecmall的本身自带的模板,可能很多用过的朋友都知道,其实还有许多功能根本无法实现。从根本上来讲,不如Smarty强大,但本人也试过将smarty引入但不是很成功,究其原因,ecmall的模板,并不是单纯地模板,而是在解析时参入了许多其它业务的逻辑,所以,直接以smarty来代替ecmall本身的模板,在widget的开发时会有很大的问题。所以,为了灵活情,本人,在ecmall

    2022年10月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号