Swift編程中數組的使用方法指南_Swift

來源:互聯網
上載者:User

Swift 數組用於儲存相同類型的值的順序列表。Swift 要嚴格檢查,它不允許錯誤地在數組中存放了錯誤的類型。

如果賦值建立數組到一個變數,它總是可變的,這意味著可以通過添加元素來改變它, 刪除或更改其項目,但如果分配一個常數陣列到則該數組,則數組是不可被改變的, 也就它的大小和內容不能被改變。

建立數組
可以使用下面的初始化程式文法來建立某種類型的空數組:

複製代碼 代碼如下:

var someArray = [SomeType]()

下面是建立一個給定的大小,並用初始值的數組的文法:
複製代碼 代碼如下:

var someArray = [SomeType](count: NumbeOfElements, repeatedValue: InitialValue)

下面是一個例子,以建立具有3個元素並初始值為零的 int 類型空數組:
複製代碼 代碼如下:

var someInts = [Int](count: 3, repeatedValue: 0)

下面是一個建立三個元素的數組,並指定三個值的數組的例子:
複製代碼 代碼如下:

var someInts:[Int] = [10, 20, 30]

訪問數組
可以使用下標文法從數組中檢索對應值,傳遞數組名後方括弧內的索引對應的值,如下:
複製代碼 代碼如下:

var someVar = someArray[index]

在這裡,指數從0開始,這意味著可以使用索引0來訪問第一個元素,第二元素可以通過使用索引1進行訪問,其它類似。讓我們來看看下面建立,初始化和訪問數組的例子:
複製代碼 代碼如下:

import Cocoa

var someInts = [Int](count: 3, repeatedValue: 10)

var someVar = someInts[0]

println( "Value of first element is \(someVar)" )
println( "Value of second element is \(someInts[1])" )
println( "Value of third element is \(someInts[2])" )


當上述代碼被編譯和執行時,它產生了以下結果:

Value of first element is 10Value of second element is 10Value of third element is 10

修改數組
可以使用 append() 方法或加法賦值運算子(+=)將新的項目添加到數組的末尾,在這裡首先建立一個空的數組,然後添加新的元素到數組中,如下所示:

複製代碼 代碼如下:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

var someVar = someInts[0]

println( "Value of first element is \(someVar)" )
println( "Value of second element is \(someInts[1])" )
println( "Value of third element is \(someInts[2])" )


當上述代碼被編譯和執行時,它產生了以下結果:

Value of first element is 20Value of second element is 30Value of third element is 40

可以通過分配一個在給定的索引處新的值修改數組的現有元素,如在下面的例子:

複製代碼 代碼如下:

import Cocoa

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

// Modify last element
someInts[2] = 50

var someVar = someInts[0]

println( "Value of first element is \(someVar)" )
println( "Value of second element is \(someInts[1])" )
println( "Value of third element is \(someInts[2])" )


當上述代碼被編譯和執行時,它產生了以下結果:

Value of first element is 20Value of second element is 30Value of third element is 50

迭代/遍曆數組
可以使用 for-in 迴圈迭代級數,在下面的例子是數組的整個集值,如下圖所示:

複製代碼 代碼如下:

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]

for item in someStrs {
   println(item)
}


當上述代碼被編譯和執行時,它產生了以下結果:

AppleAmazonGoogle

也可以使用 enumerate() 函數,如下面的例子所示,它返回索引及對應的值:

複製代碼 代碼如下:

import Cocoa

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]

for (index, item) in enumerate(someStrs) {
   println("Value at index = \(index) is \(item)")
}


當上述代碼被編譯和執行時,它產生了以下結果:

Value at index = 0 is AppleValue at index = 1 is AmazonValue at index = 2 is Google

兩個數組相加
使用加法運算子(+),以添加的相同類型的數組,這將產生新的數組是來自兩個數組值相加組合後的數組,如下:

複製代碼 代碼如下:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

for item in intsC {
   println(item)
}


當上述代碼被編譯和執行時,它產生了以下結果:

22111

count 屬性
可以使用唯讀計算 (count) 數組屬性,找出下面顯示出數組中元素的個數:

複製代碼 代碼如下:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

println("Total items in intsA = \(intsA.count)")
println("Total items in intsB = \(intsB.count)")
println("Total items in intsC = \(intsC.count)")


當上述代碼被編譯和執行時,它產生了以下結果:

Total items in intsA = 2Total items in intsB = 3Total items in intsC = 5

空屬性
使用唯讀數組的空屬性(isEmpty)找出一個數組是否為空白,如下圖所示:

複製代碼 代碼如下:

import Cocoa

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()

println("intsA.isEmpty = \(intsA.isEmpty)")
println("intsB.isEmpty = \(intsB.isEmpty)")
println("intsC.isEmpty = \(intsC.isEmpty)")


當上述代碼被編譯和執行時,它產生了以下結果:

intsA.isEmpty = falseintsB.isEmpty = falseintsC.isEmpty = true

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.