1. 程式人生 > >Swift中陣列的使用 以及注意點

Swift中陣列的使用 以及注意點

首先宣告陣列 

//: Playground - noun: a place where people can play

import UIKit

let nums = [1,2,3,4,5]

let string = ["l","h","j"]

//陣列中操作函式 返回值大多是optional 因為系統不知道這個陣列是否為空

let num1 =nums.first

let string1 =string.first

//nil

let empty = [Int]()

empty.first

nums.max()

string.max()

//遍歷陣列 c和java的Style

for index in 0..<nums.count

{

    num[index]

}

//swift中拿元素寫法

for number in nums

{

    number

}

//swift拿元素及其下標寫法 使用元組

for(index,value) in string.enumerated()

{

    print("\(index) : \(value)")

}

let NUM = [1,2,3,4,5]

//在OC或其他語言中 對於物件不可以直接用這種==對比 它們是比較引用,即對比地址 而基本型別就可以(int,double,float等)

//swift中==是內容的對比,即資料內容

num==NUM //這裡值是true

//以下是OC的陣列 java也一樣 不過如果是自定義類的話 可以重寫其對比方法 如equals()方法

NSArray*OCArray [email protected][@"1",@1];

NSArray*OCArray1 [email protected][@"1",@1];

 NSLog(@"%u",OCArray==OCArray1);

在控制檯輸出是0 即不相等

 

以下是陣列的增刪改操作

//: Playground - noun: a place where people can play

 

import UIKit

var numO : [Int]? = nil

var num = [1,2,3,4,5]

//增

//這裡如果使用感嘆號會崩潰 ?就是嘗試解包 解包錯誤就返回nil

numO?.append(6)

//即使是增加一個元素也要包裝成陣列

num += [7]

num += num[1...2]

//num += num

num.insert(10, at: 2)

 

//刪

//這裡並不是optional返回值

numO?.remove(at: 2)

 

num

num.removeSubrange(1...2)

 

//改

num[1] = 2

num

 

//   - i: A valid index of the array.

//   - n: The distance to offset `i`.

//返回的是下標 非optional

num.index(2, offsetBy: 3)

 

for _ in 1...2{

    print("樑華建")

}

//range值和replace的index值可以不同

num

num[0...2] = [7]

num