// Playground - noun: a place where people can play
import UIKit
//------------------------------------------------------------------------------
// 1. 数组定义
// 1> 使用[]能够高速定义数组。每个数组元素使用 , 分隔
// 2> 数组中的数据元素能够是不同类型
var array = ["hello", "swift", 1, 1.2]
//------------------------------------------------------------------------------
// 2. 假设要让数组中存放的数据是同一种数据类型
// 能够在定义数组时指定当中的数据类型,代码例如以下:
//
// 1> array1是一个仅同意存放String的数组
var array1:[String]
array1 = ["hello", "swift"]
// 2> array2是一个仅同意存放Int的数组
var array2:[Int] = [1, 2, 3, 4, 5]
//------------------------------------------------------------------------------
// 3. 使用泛型创建数组
// 使用泛型定义数组时 <> 中的类型能够指定数组中存放的数据类型
//
// 1> array3是一个仅同意存放Int的数组。()会实例化数组
var array3 = Array<Int>()
// 2> 在实例化数组时。能够使用数组的构造方法。指定数组初始成员
// 实例化一个数组,包括三个 20 的整数
var nums = Array<Int>(count: 3, repeatedValue: 20)
//------------------------------------------------------------------------------
// 4. 数组常见操作
// 1> 追加元素
nums.append(21)
// 也能够使用运算符直接向数组中加入元素
nums += 20
// 2> 插入元素
nums.insert(19, atIndex: 0)
nums.insert(10, atIndex: 3)
// 在playground中能够直接输入变量/常量名称。就可以查看当前内容
nums
// 3> 删除指定位置元素
nums.removeAtIndex(2)
// 使用变量记录nums数组。本质上做了一次内存拷贝。兴许对数组的改动。不会影响该变量数组中的内容
var resultNums = nums
var a = nums[3]
var b = 100
var c = a + b
// 4> 删除末尾元素
nums.removeLast()
nums
// 5> 删除全部元素。但保留存储空间
nums.removeAll(keepCapacity: true)
// 显示resultNums中的内容,数组中的内容并没有受到影响
resultNums
nums
// 6> 数组合并
// 保存同样数据类型的数组,能够使用 + 直接合并
var mergeArray = array2 + resultNums