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