<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Swift 數組 > 原文: [https://www.programiz.com/swift-programming/arrays](https://www.programiz.com/swift-programming/arrays) #### 在本教程中,您將學習數組,創建數組,訪問數組的值以及數組中的一些常見操作。 在先前的 [Swift 數據類型](/swift-programming/data-types "Swift Data types")文章中,我們了解了如何創建可以容納單個值的某些數據類型的變量/常量。 但是,如果我們要存儲相同數據類型的多個值怎么辦。 我們在 Swift 中使用了**數組**。 * * * ## 什么是數組? 數組只是一個容器,可以在一個有序列表中保存一個數據類型的多個數據(值),即,您以與定義數組中各項相同的順序獲得元素。 數組可以存儲任何數據類型的值,例如`Int`,`String`,類等 * * * ## 如何在 Swift 中聲明數組? 您可以通過在方括號`[]`中指定數據類型來創建一個空數組。 請記住,您必須在方括號內包括類型,否則 Swift 會將其視為普通數據類型,并且您只能在其中存儲一個值。 ### 示例 1:聲明一個空數組 ```swift let emptyIntArr:[Int] = [] print(emptyIntArr) ``` 運行該程序時,輸出為: ```swift [ ] ``` 在上面的程序中,我們聲明了一個常量`emptyIntArr`,該常量可以存儲整數數組并用 0 值初始化。 **或** 您還可以如下定義一個空數組: ```swift let emptyIntArr:Array<Int> = Array() print(emptyIntArr) ``` **或** 由于 swift 是一種類型推斷語言,因此您也可以直接創建數組而無需指定數據類型,但是必須使用一些值進行初始化,以便編譯器可以將其類型推斷為: ### 示例 2:聲明具有某些值的數組 ```swift let someIntArr = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(someIntArr) ``` 運行該程序時,輸出為: ```swift [1, 2, 3, 4, 5, 6, 7, 8, 9] ``` 在上面的程序中,我們聲明了一個常量`someIntArr`,該常量可以存儲`Integer`數組,而無需顯式指定類型。 另外,我們用值`[1,2,3,4,5,6,7,8,9]`初始化了數組。 * * * ### 示例 3:聲明包含指定數量的單個重復值的數組 您還可以重復給定值多次以在 Swift 中形成數組。 這是通過將數組初始化器與`repeating`和`count`一起使用來完成的。 ```swift let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues) ``` 運行該程序時,輸出為: ```swift ["Hello, World", "Hello, World", "Hello, World", "Hello, World"] ``` 在上面的程序中,我們定義了一個常量`arrWithRepeatingValues`,該常量存儲字符串`"Hello, World"`的**數組** ,并將相同的值重復 4 次,如`count`中指定的那樣 ]。 **注意**:在 Swift 中,不能像在其他編程語言中一樣創建固定長度大小的數組。 固定長度大小的數組意味著,數組中的元素不能超過初始化期間定義的元素。 * * * ## 值如何存儲在數組中? 假設您有一個可以存儲字符串數組的常量,如下所示: ```swift let intArr = [21, 34, 54, 12] ``` 值如何存儲在數組中的圖形表示如下所示: ![How values are stored in an array?](https://img.kancloud.cn/3a/55/3a55b84b999bbc5f81101b7ec763722f_500x80.png "Value storage representation in an array") 您創建的所有數組都從索引 0 開始。第一個元素存儲在索引 0 中,第二個元素存儲在下一個索引(1)中,依此類推。 * * * ## 如何在 Swift 中訪問數組元素? 您可以使用*下標語法*來訪問數組的元素,即,您需要在數組名稱后的方括號內包含要訪問的值的索引。 假設您如上所述聲明了一個數組`intArr`。 第一個元素是`intArr [0]`,第二個元素是`intArr [1]`,依此類推。 ![How to access array elements in Swift?](https://img.kancloud.cn/a6/a1/a6a1296812a92f092adc2bdc84b33f7a_500x96.png "How to access array elements in Swift?") ### 示例 4:訪問數組的元素 ```swift let intArr = [21, 34, 54, 12] print(intArr[0]) print(intArr[1]) print(intArr[2]) print(intArr[3]) ``` 運行該程序時,輸出為: ```swift 21 34 54 12 ``` 您也可以使用`for-in`循環訪問數組的元素。 有關更多信息,請參見 [Swift `For-in`循環](/swift-programming/for-in-loop#collection "Swift for-in loop")。 * * * ## 如何在 Swift 中修改/添加數組元素? 您可以使用*下標語法*和賦值運算符來修改數組的元素,即,需要在數組名稱之后的方括號內包括要更新的值的索引,然后是賦值運算符和新值。 ### 示例 5:修改數組的元素 ```swift var intArr = [21, 34, 54, 12] intArr[0] = 12 intArr[1] = 42 intArr[2] = 45 intArr[3] = 21 print(intArr) ``` 運行該程序時,輸出為: ```swift [12, 42, 45, 21] ``` 您還可以使用新值修改數組的所有元素,如下所示: * * * ### 示例 6:整體修改數組 ```swift var intArr = [21, 34, 54, 12] intArr = [1,2,3] print(intArr) ``` 運行該程序時,輸出為: ```swift [1, 2, 3] ``` 但是,要將新元素添加到現有數組中,則不能使用下標語法。 如果這樣做,最終將導致錯誤。 您不能執行以下操作: * * * ### 示例 7:使用下標語法在數組中添加新元素(無效) ```swift var intArr = [21, 34, 54, 12] intArr[4] = 10 ``` 運行該程序時,輸出為: ```swift fatal error: Index out of range ``` 在將新元素分配給數組`intArr`時,上述程序給出了錯誤。 這是因為`intArr`尚未為索引 4 分配額外的內存,并且無法存儲給定值。 為了正確地將新元素插入數組,我們使用數組的`append()`方法。`append()`在以下部分中描述。 * * * ## 一些有用的內置數組函數&屬性 ### 1\. `isEmpty` 此屬性確定數組是否為空。 如果數組不包含任何值,則返回`true`,否則返回`false`。 #### 示例 8:`isEmpty`如何工作? ```swift let intArr = [21, 34, 54, 12] print(intArr.isEmpty) ``` 運行該程序時,輸出為: ```swift false ``` * * * ### 2.`first` 此屬性用于訪問數組的第一個元素。 #### 示例 9:`first`如何工作? ```swift let intArr = [21, 34, 54, 12] print(intArr.first) ``` 運行該程序時,輸出為: ```swift Optional(21) ``` 同樣,您可以使用`last`屬性訪問數組的最后一個元素。 * * * ### 3.`append` `append`函數用于在數組末尾插入/附加元素。 #### 示例 10:`append`如何工作? ```swift var intArr = [21, 34, 54, 12] intArr.append(32) print(intArr) ``` 運行該程序時,輸出為: ```swift [21, 34, 54, 12, 32] ``` 您還可以將一個數組的內容附加到另一個數組,如下所示: ```swift var firstArr = [1,2,3,4] var secondArr = [5,6,7,8] firstArr.append(contentsOf: secondArr) print(firstArr) ``` 運行該程序時,輸出為: ```swift [1, 2, 3, 4, 5, 6, 7, 8] ``` * * * ### 4.`insert` 此函數用于在數組的特定索引處插入/附加元素。 #### 示例 11:`insert`如何工作? ```swift var intArr = [21,34,54,12] intArr.insert(22, at: 1) print(intArr) ``` 運行該程序時,輸出為: ```swift [21, 22, 34, 54, 12] ``` 同樣,您也可以使用`remove`屬性刪除指定索引處的元素。 * * * ### 5.`remove` 此函數從數組中刪除并返回在指定位置指定的值。 #### 示例 12:`remove`如何工作? ```swift var strArr = ["ab","bc","cd","de"] let removedVal = strArr.remove(at: 1) print("removed value is \(removedVal)") print(strArr) ``` 運行該程序時,輸出為: ```swift removed value is bc ["ab", "cd", "de"] ``` 同樣,您還可以使用`removeFirst`刪除數組的第一個元素,`removeLast`刪除數組的最后一個元素和`removeAll`清空數組。 * * * ### 6.`reversed` 此函數以相反的順序返回數組的元素。 #### 示例 13:`reversed()`如何工作? ```swift var intArr = [21,22,23,24] let reversedArr = Array(intArr.reversed()) print(reversedArr) ``` 運行該程序時,輸出為: ```swift [24, 23, 22, 21] ``` * * * ### 7.`count` 此屬性返回數組中元素的總數。 #### 示例 14:`count` ```swift let floatArr = [10.2,21.3,32.0,41.3] print(floatArr.count) ``` 運行該程序時,輸出為: ```swift 4 ``` * * * ## 要記住的事情 在 Swift 中使用下標語法訪問數組元素時,必須確保該值位于索引中,否則將導致運行時崩潰。 讓我們在示例中看一下: ```swift let intArr = [21, 34, 54, 12] print(intArr[-1]) ``` 運行該程序時,輸出為: ```swift fatal error: Index out of range ``` 在上述程序中,索引 **-1** 中沒有值。 因此,當您嘗試訪問索引中的值時,將發生運行時崩潰。 為防止這種情況,請首先找到您要刪除的元素的索引。 然后刪除索引處的元素,如下所示: ```swift var intArr = [21, 34, 54, 12] if let index = intArr.index(of: 34) { print("found index") let val = intArr.remove(at: index) print(val) } ``` 運行該程序時,輸出為: ```swift found index 34 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看