这个Swift语法的长格式



将第一个元素的id与比较器的id进行比较,如果匹配则返回true。我对。first {} != nil语法的{}感到困惑。该模式的较长形式如何浓缩为以下内容:

private(set) var arr : [Arrs] = [] 
func isPresent(for compr: Compr) -> Bool {
Arrs.first { comp.id == $0.id } != nil 
}

首先,将这行更改为以下内容,以便编译:

arr.first { compr.id == $0.id } != nil

这只是使用first(where:)方法的尾随闭包语法。也可以写成:

arr.first(where: { compr.id == $0.id }) != nil

但更好的方法是这样做:

arr.contains { compr.id == $0.id }

最新更新