跟着洲洲哥一块学习Swift-数组
数组
Swift语言里的数组和字典中存储的数据值类型必须明确。 这意味着我们不能把不正确的数据类型插入其中。 同时这也说明我们完全可以对获取出的值类型非常自信。 Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚,也让我们在开发中可以早早地找到任何的类型不匹配错误。
数组使用有序列表存储相同类型的多重数据。相同的值可以多次出现在一个数组的不同位置中。
Swift数组对存储数据有具体要求。 不同于 Objective-C的NSArray和NSMutableArray类,他们可以存储任何类型的实例而且不提供他们返回对象的任何本质信息。 在 Swift 中,数据值在被存储进入某个数组之前类型必须明确,方法是通过显式的类型标注或类型推断,而且不是必须是class类型。例如: 如果我们创建了一个Int值类型的数组,我们不能往其中插入任何不是Int类型的数据。 Swift 中的数组是类型安全的,并且它们中包含的类型必须明确。
数组的简单语法
写 Swift 数组应该遵循像Array这样的形式,其中sometype是这个数组中唯一允许存在的数据类型。 我们也可以使用像SomeType[]这样的简单语法。 尽管两种形式在功能上是一样的, 但是我们推荐较短的那种,而且在本文中都会使用这种形式来使用数组。
数组构造语句
我们可以使用字面语句来进行数组构造,这是一种用一个或者多个数值构造数组的简单方法。字面语句是一系列由逗号分割并由方括号包含的数值。 [value 1, value 2, value 3]。
声明一个[普通]数组
// 会根据数组的初始值来判断该数组的类型
var OneArry = ["A","B"]
// 声明一个为类型为String类型的数组
var shoppingList:[String] = ["E", "M"]
以此类推
1.定义个Int类型的数组
var twoArry:[Int] = [1,2,3]
2.定义一个Double类型的数组
var twoArryD:[Double] = [1.1,2.2,3.3]
快速声明一个[数据类型确定的]数组
Swift给我我们提供了一个函数
/// Construct a Array of `count` elements, each initialized to
/// `repeatedValue`.
public init(count: Int, repeatedValue: Element)
可以初始化一个数组类型,数组的元素个数,每个元素的初始值
//快速声明一个数组 有数量 和 初始值
var OneStrings = [String](count:2,repeatedValue: "3")
可以这样
// 声明一个Int类型的数据有9个元素,并且每个数组的元素的初始化值都是0
[Int](count:9,repeatedValue:0)
数组的访问和修改
if tempArry.isEmpty {
print("是空的")
}else {
print("不是空的")
}
2:用[append]方法在数组后面添加新的数据项
nameArry.append("apple")
3:用[insert]方法在数组后面添加新的数据项
nameArry.insert("dev", atIndex: 0)
4:用 += 方法添加数据
nameArry += ["bb","tttt"]
数组遍历
普通遍历
for items in nameArry {
print("\(items)")
}
遍历的时候同时获取索引和对应的数据
for (inde,values) in nameArry.enumerate() {
print("索引:\(inde)" + "-----" + "数据:\(values)")
}
数组合并
在Swift中如果创建一个数组没有明确的类型指定,那他会根据数组里的数据来自动判断类型。这样搞还是很安全的。
var threeDoubles = [String](count:2,repeatedValue: "3")// ["3.0", "3.0", "3.0"]
var AnotherC = Array(count:3,repeatedValue:"3.0")// ["12", "3.0", "3.0", "3.0"]
var sumStr = threeDoubles + AnotherC// ["3", "3", "12", "3.0", "3.0", "3.0"]
如有问题可添加我的QQ:1290925041
还可添加QQ群:234812704(洲洲哥学院)
欢迎各位一块学习,提高逼格!
也可以添加洲洲哥的微信公众号
更多消息
更多信iOS开发信息 请以关注洲洲哥 的微信公众号,不定期有干货推送:
这里写图片描述