外贸网站价格表,wordpress登入界面,镇江个人网站建设,python做网站有什么优势文章目录 集合的可变性数组数组类型简写语法创建空数组使用默认值创建数组通过合并两个数组创建一个新数组使用数组字面量创建数组访问和修改数组 Swift 提供了三种主要的 集合类型#xff0c;分别是数组、集合和字典#xff0c;用于存储值集合。数组是有序的值集合。集合是无… 文章目录 集合的可变性数组数组类型简写语法创建空数组使用默认值创建数组通过合并两个数组创建一个新数组使用数组字面量创建数组访问和修改数组 Swift 提供了三种主要的 集合类型分别是数组、集合和字典用于存储值集合。数组是有序的值集合。集合是无序的唯一值集合。字典是无序的键值对关联集合。 Swift 中的数组、集合和字典对于它们可以存储的值和键的类型始终是明确的。这意味着你不能错误地将一个类型不匹配的值插入到集合中。同时这也意味着你可以放心地知道从集合中取出的值的类型。 ※注意 Swift 的数组、集合和字典类型是作为 泛型集合 实现的。 有关泛型类型和集合的更多信息请参阅 泛型。 集合的可变性
如果您创建一个数组、集合或字典并将其赋值给一个变量则创建的集合将是 可变的。这意味着在创建集合后您可以通过添加、删除或更改集合中的元素来改变或称为 变异集合。如果您将数组、集合或字典分配给常量则该集合是 不可变的并且其大小和内容无法更改。 ※注意 在所有不需要更改的情况下创建不可变集合是一种良好的实践。这样做可以使你更容易理解代码并使 Swift 编译器能够优化你创建的集合的性能。 数组
数组——将相同类型的值存储在一个有序列表中。相同的值可以在数组中以不同位置多次出现。 ※注意 Swift 的 Array 类型与 Foundation 的 NSArray 类进行了桥接。 有关如何在 Foundation 和 Cocoa 中使用 Array 的更多信息请参阅相关文档 Bridging Between Array and NSArray。 数组类型简写语法
Swift 数组的类型完整写作 ArrayElement其中 Element 是数组允许存储的值的类型。你也可以以简写形式 [Element] 来表示数组的类型。虽然这两种形式在功能上是相同的但简写形式更受欢迎并且在本指南中提到数组类型时将优先使用这种形式。
创建空数组
您可以使用构造器语法创建某种类型的空数组
var someInts: [Int] []
print(someInts is of type [Int] with \(someInts.count) items.)
// 打印 “someInts is of type [Int] with 0 items.“请注意someInts 变量的类型根据初始化器的类型推断为 [Int]。
或者如果上下文已经提供了类型信息例如函数参数或已经定义类型的变量或常量你可以使用空数组字面量 []一对空的方括号来创建一个空数组
someInts.append(3)
// someInts 现在包含 1 个类型为 Int 的值
someInts []
// someInts 现在是一个空数组, 但它仍是 [Int] 类型的使用默认值创建数组
Swift 的 Array 类型还提供了一个构造器用于创建特定大小的数组其所有值都设置为相同的默认值。您向此构造器传递适当类型的默认值称为 repeating以及该值在新数组中重复的次数称为 count
var threeDoubles Array(repeating: 0.0, count: 3)
// threeDoubles 的类型是 [Double]并且等于 [0.0, 0.0, 0.0]通过合并两个数组创建一个新数组
您可以通过使用加法运算符 将两个具有兼容类型的现有数组相加来创建新数组。新数组的类型是从您相加的两个数组的类型推断出来的
var anotherThreeDoubles Array(repeating: 2.5, count: 3)
// anotherThreeDoubles 的类型是 [Double]并且等于 [2.5, 2.5, 2.5]var sixDoubles threeDoubles anotherThreeDoubles
// sixDoubles 被推断为 [Double] 类型并且等于 [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]使用数组字面量创建数组
您还可以使用 数组字面量 来初始化数组这是将一个或多个值写入数组集合的简写方法。数组字面量以值列表的形式写入用逗号分隔用一对方括号括起来
[#value 1#, #value 2#, #value 3#]下面的示例创建了一个名为 shoppingList 的数组来存储 String 值
var shoppingList: [String] [Eggs, Milk]
// shoppingList 已经用两个初始项进行了初始化shoppingList 变量被声明为“字符串值数组”写作 [String]。由于该数组指定了值类型为 String因此它只允许存储 String 类型的值。在这里shoppingList 数组通过数组字面量初始化了两个 String 值“Eggs” 和 “Milk”。 ※注意 shoppingList 数组被声明为变量使用 var 关键字而不是常量使用 let 关键字因为在下面的示例中更多的商品要被添加到购物清单中。 在这个例子中数组字面量只包含两个 String 值且没有其他内容。这与 shoppingList 变量的声明类型一个只能包含 String 值的数组相匹配因此允许使用这个数组字面量来初始化 shoppingList并包含两个初始项目。
得益于 Swift 的类型推断功能如果您使用包含相同类型值的数组字面量进行初始化则无需显式地写出数组的类型。shoppingList 的初始化可以改为以更简短的形式编写
var shoppingList [Eggs, Milk]由于数组字面量中的所有值都是相同类型Swift 可以推断出 [String] 是 shoppingList 变量的正确类型。
访问和修改数组
您可以通过数组的方法和属性或使用下标语法来访问和修改数组。 要找出数组中的项数可以检查其只读属性 count
print(The shopping list contains \(shoppingList.count) items.)
// 打印 “The shopping list contains 2 items.“使用布尔值 isEmpty 属性作为检查 count 属性是否等于 0 的快捷方式
if shoppingList.isEmpty {print(The shopping list is empty.)
} else {print(The shopping list isnt empty.)
}
// 打印 “The shopping list isnt empty.“您可以通过调用数组的 append(_:) 方法将新元素添加到数组的末尾
shoppingList.append(Flour)
// shoppingList 现在包含 3 项而有人正在做煎饼或者可以使用加法赋值运算符将一个或多个兼容项的数组追加到现有数组中
shoppingList [Baking Powder]
// shoppingList 现在包含 4 项
shoppingList [Chocolate Spread, Cheese, Butter]
// shoppingList 现在包含 7 项使用 下标语法 从数组中检索值在数组名称后面的方括号[]内传递要检索的值的索引
var firstItem shoppingList[0]
// firstItem 的值为 “Eggs”※注意 数组中的第一项的索引为 0而不是 1。Swift 中的数组始终是零索引的。 您可以使用下标语法来更改给定索引处的现有值
shoppingList[0] Six eggs
// 列表中的第一个项现在是 “Six eggs” 而不是 “Eggs”当您使用下标语法时您指定的索引需要有效。例如编写 shoppingList[shoppingList.count] “Salt” 以尝试将项目追加到数组末尾会导致运行时错误。
您还可以使用下标语法一次更改一个范围的值即使替换值集的长度与要替换的范围不同。以下示例将 “Chocolate Spread”, “Cheese” 和 “Butter” 替换为 “Bananas” 和 “Apples”
shoppingList[4...6] [Bananas, Apples]
// shoppingList 现在包含 6 项 [Six eggs, Milk, Flour, Baking Powder, Bananas, Apples]要将项目插入数组中指定索引处请调用数组的 insert(_:at:) 方法
shoppingList.insert(Maple Syrup, at: 0)
// shoppingList 现在包含 7 项
// ”Maple Syrup“ 现在是列表中的第一项