swift数组
/*
1. 数组的定义
2. 数组遍历
3. 数组的增/删/改
4. 数组的合并 数组的合并方法比较简单
*/
class ViewController: UIViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
demo5()
}
//MARK: - 数组的合并
func demo5()
{
var array = ["张三", "小芳", "小样"]
let array2 = ["老唐"]
// 将array2的内容合并到array中
// 主要:要合并数组的两个类型必须一致
array += array2
print("array=\(array)")
}
//MARK: - 数组容量
func demo4()
{
// 定义一个数组,指定类型是 存放 Int的数组,但是没有初始化
var array: [Int]
// 个数组初始化
array = [Int]()
// 以上两句代码可以合并一句
var array1 = [Int]()
array.append(1)
}
//MARK: - 数组的增/删/改
func demo3()
{
// OC 中数组可变NsMutalbeArray(var)/不可变NSArray(let)
var array = ["张三", "小芳", "小样"]
// 追加元素
array.append("老王")
print("array=\(array)")
// 修改,通过下标定位
array[0] = "hehe"
print("array=\(array)")
// 删除
array.remove(at: 1)
// array.removeAll()
array.removeAll(keepingCapacity: true)
print("array.capacity=\(array.capacity)")
}
//MARK: - 数组遍历
func demo2()
{
let array = ["张三", "唐斌", "小样"]
// 1. 按照下标遍历
print("-- 按下标遍历")
for i in 0..<array.count
{
print(array[i])
}
// 2. 按for in 遍历元素
print("--按for in 遍历元素")
for s in array
{
print(s)
}
// 3. enum block 遍历,同时遍历下标和内容
print("--同时遍历下标和内容")
for e in array.enumerated()
{
print("\(e.offset) \(e.element)")
}
// 4. 遍历下标和内容2
print("遍历下标和内容2")
// n是数组下标;s是数组元素
for (n, s) in array.enumerated()
{
print("\(n) \(s)")
}
// 5. 数组反序遍历
print("--数组反序遍历")
for s in array.reversed()
{
print(s)
}
// 6. 反序索引内容
print("--反序索引内容");
// 错误的反序
for (n, s) in array.reversed().enumerated()
{
print("\(n) \(s)")
}
print("--正确地反序")
for (n, s) in array.enumerated().reversed()
{
print("\(n) \(s)")
}
}
//MARK: - 数组的定义
func demo1()
{
// OC 使用 [] 定义数组,Swift一样,但是 没有‘@‘
// 自动推导的结果[String]-> 表示数组中存放的都是String
// 跟OC中的数组指定泛型类型
let array = ["张三", "消防", "加入"]
print("array=\(array)")
//[Int] -> 表示存放的都是Int
// Switf 中基本数据类型不须要包装
let array2 = [1, 2, 3, 4]
print("array2=\(array2)")
//CG结构体
let p = CGPoint(x: 10, y: 20)
let array3 = [p]
print("array2=\(array3)")
// 混合数组:开发费中几乎不用,因为数组是靠下标索引
// OC如果数组中的类型不一致,自动推导的结果[NSObject]
// 在Swift中还有一种类型,[Any]->任意对象
// 在Swift中一个类可以没有任何‘父类’
// *** 在混合数组中 CG 结构体须要包装
let array4 = ["唐斌", 4, NSValue(cgPoint: p)] as [Any]
print("array4=\(array4)")
}
}
posted on 2017-07-28 14:13 TangBin604 阅读(114) 评论(0) 编辑 收藏 举报