跳到主要内容

Swift 集合 filter() 方法

filter() 方法返回满足指定条件的集合中的所有元素。

示例

var numbers: Set = [2, 3, 6, 9]

// 返回所有大于5的元素
var result = numbers.filter({ $0 > 5})

print(result)

// 输出: [6, 9]

filter() 语法

filter() 方法的语法如下:

set.filter(condition)

这里,setSet 类的一个对象。

filter() 参数

filter() 方法接受一个参数:

  • condition - 一个接受条件并返回 Bool 值的闭包。

filter() 返回值

  • 返回满足指定条件的集合中的所有元素

示例 1: Swift set filter()

var languages: Set = ["Swedish", "Nepali", "Slovene", "Norwegian"]

// 返回所有以 "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]

// 检查所有元素是否为偶数
var result = numbers.filter({ $0 % 2 == 0 })

print(result)

输出

[2, 4, 8]