//字面量创建一个数组(可以使用数组字面量来初始化一个数组,他是一种以数组集合来写一个或者多个值的简写方式.数组字面量写作一系列的值,用逗号隔开,用方括号括起来)
let array = [1,2,3,4]
/*
1.创建空数组的时候必须携带类型信息;
2.如果内容已经提供了类型信息,比如说作为函数的实际参数或者已经分类了的变量或常量,你可以通过空数组字面量来创建一个空数组
*/
var array: [String] =[]
//初始化器==>[类型]()
var array1=[String]()
//初始化器==>Array<类型>()
var array2=Array<String>()
//将"Z"重复创建5次
var array3=Array(repeating: "z", count: 5)
//使用区间初始化一个数组
var aray4=[Int](0...7)
/*
forEach:
无法使用break或continue跳出或者跳过循环
使用return只能退出当前一次循环的执行体
*/
var numbers=[Int](0...7)
numbers.forEach { (num) in
print(num*10)
}
/*
startIndex:返回第一个元素的位置,对于数组来说,永远都是0
endIndex:返回最后一个元素索引+1的位置,对于数组来说等同于count.
如果数组为空,startIndex等同于endIndex.
*/
for (index,num) in numbers.enumerated() {
print("\(index)+\(num)")
}
//获取索引区间
for i in numbers.indices {
print("\(i)")
}
/*
contains(_:)判断数组中是否包含给定元素
contains(where:)判断数组中是否包含给定条件的元素
allSatisfy(_:)判断数组的每一个元素都符合给定的条件
first:返回数组中第一个元素(optional),如果数组为空,返回Nil.
last:返回数组中最后一个元素(optional),如果数组为空,返回Nil.
first(where:):返回数组中第一个符合给定条件的元素
last(where:):返回数组中最后一个符合给定条件的元素
firstIndex(of:):返回给定的元素在数组中出现的第一个位置(optional)
lastIndex(of:):返回给定的元素在数组中出现的最后一个位置(optional)
max():返回数组中最大元素
min():返回数组中最小元素
*/
var array5=[10,20,45,30,98,101,30,4];
print(array5.allSatisfy({$0>10}))//false
print(array5.first)//10
print(array5.last)//4
print(array5.first(where: {$0>25}))//45
print(array5.last(where: {$0>25}))//30
print(array5.firstIndex(of: 30))//3
print(array5.lastIndex(of: 20))//1
print(array5.max())//101
print(array5.min())//10
var numbers2=[Int](2...7)
numbers2.append(100)//在末尾添加一个元素
print(numbers2)
numbers2.append(contentsOf: 101...105)//在末尾添加多个元素
print(numbers2)
numbers2.insert(1, at: 0)//在指定位置插入一个元素
numbers2.insert(contentsOf: 101...103, at: 0)//在指定位置插入多个元素
numbers2.remove(at: 1)//移除并返回指定位置的一个元素
numbers2.removeFirst()//移除并返回数组的第一个元素
numbers2.popLast()//移除并返回数组中的最后一个元素(optional),数组为空返回nil
numbers2.remove(at: 1)//移除并返回指定位置的一个元素
numbers2.removeFirst()//移除并返回数组中的第一个元素
numbers2.removeFirst(2)//移除数组前面多个元素
numbers2.removeLast(2)//移除数组后面多个元素
numbers2.removeSubrange(1...2)//移除数组中给定范围的元素
numbers2.removeAll()//移除数组中所有元素
numbers2.removeAll(keepingCapacity: true)//移除数组中所有元素,保留数组容量
/*
5.ArraySlice:
dropFirst(:):"移除"原数组前面指定个数的元素得到一个ArraySlice
dropLast(:):"移除"原数组后面指定个数的元素得到一个ArraySlice
drop(:):"移除"原数组符合指定条件的元素得到一个ArraySlice
prefix():获取数组前面指定元素个数的元素组成的ArraySlice
prefix(upTo: ):获取数组到指定位置(不包含指定位置)前面元素组成的ArraySlice
prefix(through: ):获取数组到指定位置(包含指定位置)前面元素组成的ArraySlice
prefix(while: ):获取数组前面符合条件的元素(到第一个不符合条件的元素截止)组成的ArraySlice
suffix():获取数组后面指定个数的元素组成的ArraySlice
suffix(from:):获取数组到指定位置到结尾(包含指定位置)的元素组成的ArraySlice
*/
let array6=[5,2,10,1,0,100,46,99];
array6.dropFirst()//[2,10,1,0,100,46,99];
array6.dropFirst(3)//[1,0,100,46,99];
array6.dropLast()//[5,2,10,1,0,100,46];
array6.dropLast(3)//[5,2,10,1,0];
/*
6.数组元素的随机化:
array6.shuffle():在原数组上将数组元素打乱,只能作用在数组变量上
array6.shuffled():返回原数组的随机化数组,可以作用在数组变量和常量上
array6.reverse():在原数组上将元素逆序,只能作用在数组变量上
array6.reversed():返回原数组的逆序"集合表示",可以作用在数组变量和常量上.该方法不会分配新内存空间
array6.partition():将数组已某个条件分组,数组前部分都是不符合条件的元素,数组后半部分都是符合条件的元素
array6.sort():在原数组上将元素排序,只能作用在数组变量上
array6.sortd():返回原数组的排序结果数组,可以作用在数组变量和常量上
array6.swapAt(<#T##i: Int##Int#>, <#T##j: Int##Int#>):交换指定位置的两个元素
*/
/*
joined():拼接字符串数组里的所有元素为一个字符串
joined(sequence:):以给定的分隔符拼接字符串数组里的所有元素为一个字符串
*/