Swift科普文《Set》
Swift科普文《Set》

Swift科普文《Set》

Set 是 Swift 中的一个集合类型,用来存储 唯一且无序 的元素。与数组不同,Set 的元素是无序的,但查找和插入操作非常高效。以下是如何使用 Set 的一些例子和基本操作。

创建一个 Set

var availableCurrencies: Set<String> = ["USD", "EUR", "JPY"]

或者,Swift 可以通过类型推断直接创建:

var availableCurrencies: Set = ["USD", "EUR", "JPY"]

添加元素到 Set

availableCurrencies.insert("CNY") // 添加人民币

删除元素

availableCurrencies.remove("JPY") // 删除日元

如果尝试删除的元素不在 Set 中,不会发生错误。

检查是否包含某个元素

Set 提供快速查找功能,用 contains 方法检查是否存在某个元素:

if availableCurrencies.contains("USD") {
    print("支持美元")
}

遍历 Set

可以像数组一样使用 for-in 循环遍历 Set 中的所有元素:

for currency in availableCurrencies {
    print("支持的货币: \(currency)")
}

注意,Set 是无序的,所以元素的打印顺序可能与插入顺序不同。

Set 的其他操作

取并集(Union): 合并两个 Set,得到一个包含所有元素的新 Set。

let set1: Set = ["USD", "EUR"]
let set2: Set = ["JPY", "CNY"]
let unionSet = set1.union(set2) // ["USD", "EUR", "JPY", "CNY"]

取交集(Intersection): 得到两个 Set 中都有的元素。

let set1: Set = ["USD", "EUR", "JPY"]
let set2: Set = ["JPY", "CNY"]
let intersectionSet = set1.intersection(set2) // ["JPY"]

取差集(Subtracting): 从一个 Set 中移除另一个 Set 里有的元素。

let set1: Set = ["USD", "EUR", "JPY"]
let set2: Set = ["JPY"]
let differenceSet = set1.subtracting(set2) // ["USD", "EUR"]

构造函数创建Set

前面的创建方式为字面量创建

使用 [] 可以直接创建一个 Set,但需要显式声明类型是 Set,例如:

var availableCurrencies: Set<String> = ["USD", "EUR", "JPY"]

通过构造函数创建

如果你已经有一个数组,并希望将其转换为 Set 类型,可以使用 Set 构造函数,例如:

let currencyArray = ["USD", "EUR", "USD", "JPY"]
let availableCurrencies = Set(currencyArray)
// 结果: ["USD", "EUR", "JPY"]

例如,你需要提取一个汇率来源的可用币种字段,你可以考虑使用

// 提取可用的币种符号
let availableCurrencies = Set(forexData.records.map { $0.vrtCode })

利用 map 函数遍历所有的 records,提取出 vrtCode,并将其收集到 Set 中,这样可以自动去除重复的币种符号。

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注