zoukankan      html  css  js  c++  java
  • Swift3中数组创建方法

    转载自: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]

  • 相关阅读:
    Working with macro signatures
    Reset and Clear Recent Items and Frequent Places in Windows 10
    git分支演示
    The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1.
    Build website project by roslyn through devenv.com
    Configure environment variables for different tools in jenkins
    NUnit Console Command Line
    Code Coverage and Unit Test in SonarQube
    头脑王者 物理化学生物
    头脑王者 常识,饮食
  • 原文地址:https://www.cnblogs.com/winterfells/p/7441607.html
Copyright © 2011-2022 走看看