prettyprint

2015年8月11日 星期二

【Swift 筆記 Draft】第 3 講(1): 數組 Array

1. Array 是一組有次序的,由相同 data type 的 element 構成的集合collection。
2. Array 中的 element 可以重複出現。
3. 以 let 宣告的 array 為不可變資料,無法新增修改刪除,而以 var 宣告的 array 資料可以。

 Swift 可新增、修改、刪除 Array 中的元素 element。(其他語言不可)


宣告與 init

let colorArray = ["red","white","black"]  // read only
println(colorArray)

var colorArray:[String] = ["red","white","black"] // read / write
var colorArray:Array<string> = ["red","white","black"]
var colorArray:[String] = 3 values {
      [0] = "red"
      [1] = "white"
      [2] = "black"
}

Array 中的 element,其 data type 需一致。若不一致,其 data type 轉換為 cocoa library 中的 NSArray / NSMutableArray。

var mixedTypeArray = ["abc", 1]

宣告 empty Array

var nullArray1 = [String]()
var nullArray2:[String] = []
var nullArray3:Array<string> = []


若宣告為下列,則不會使用 Swift 的 Array 這 data type,而是轉換成 NSMutableArray:

var nullArray = []

宣告固定長度 Array

var fixedLengthArray = [Int](count:3, repeatedValue:1)

宣告2維陣列 2 Dimension Array

var myArray = [[1,2,3] , [4, 5, 6]]

Array 相加

var array1 = [1, 2, 3]
var array2 = [4, 5,6]
var array3 = array1 + array2 // [1,2,3,4,5,6]

Array 的 getter / setter

var array1 = [1, 2, 3]
println(array1[0])  // 1
array1[0] = 0 // array1[1] = [0, 2, 3]

Array 區間 range 之 Assignment

arrayName[min ... max] = [item1, item2, ...,itemn]
arrayName[min ..&lt; max] = [item1, item2, ...,itemn]

var num[0 ... 2] = [1, 2, 3]

Array 新增、刪除 element

append : array1.append(9) // array1 = [1,2,3,9]
+ :array1 += [8] // array1 = [1,2,3,8]
insert : array1.insert(7,atIndex:array1.count) // array1 = [1,2,3,7]
removeLast : array1.removeLast  // array1 = [1,2]
removeAtIndex : array1.removeAtIndex(0) // array1 = [2, 3]
removeAll
empty
count

Array Iteration:

var array1 = [1, 2, 3]
for i in array1 {
  println("i = \(i)")
}

for (index, value) in enumerate(array1){
  println("index \(index): \(value)")

執行結果:

index 0: 1
index 1: 2
index 2: 3



沒有留言:

張貼留言

prettyPrint();