filter()
方法会从集合中返回所有满足给定条件的元素。
示例
var numbers: Set = [2, 3, 6, 9]
// return all the elements greater than 5
var result = numbers.filter({ $0 > 5})
print(result)
// Output: [6, 9]
filter() 语法
filter()
方法的语法是
set.filter(condition)
其中,set 是 Set
类的一个对象。
filter() 参数
filter()
方法接受一个参数:
- condition - 一个闭包,接受一个条件并返回一个 Bool 值。
filter() 返回值
- 返回集合中所有满足给定条件的元素
示例 1: Swift Set filter()
var languages: Set = ["Swedish", "Nepali", "Slovene", "Norwegian"]
// return all the elements that start with "N"
var result = languages.filter( { $0.hasPrefix("N") } )
print(result)
输出
["Nepal", "Norwegian"]
在上面的程序中,请注意闭包的定义:
{ $0.hasPrefix("N") }
这是一个简短的闭包,用于检查集合中的所有元素是否都以 "N"
开头。
$0
是指向传递到闭包的第一个参数的快捷方式。
闭包根据条件返回一个 Bool
值。如果条件为
true
- 保留该集合值false
- 丢弃/忽略该集合值
最后,所有以 "N"
开头的元素都存储在 result 变量中。
示例 2: 从集合中仅返回偶数
var numbers: Set = [2, 4, 5, 7, 8, 9]
// check if all elements are even numbers or not
var result = numbers.filter({ $0 % 2 == 0 })
print(result)
输出
[2, 4, 8]