[英]What does $1 ++ $0 mean in the closure for Swift?
我在查看有关如何从列表中删除重复项的代码时,发现了一些我不熟悉的语法。 $1++$0 是什么意思?
extension List where Element: Hashable {
func removeDuplicates() -> List {
var set = Set<Element>()
let list = reduce(List()) {
guard !set.contains($1) else { return $0 }
set.insert($1)
return $1 ++ $0
}
return list.reversed()
}
}
$0
是传入闭包的第一个参数。
$1
是第二个参数。
++
是自定义中缀运算符
infix operator ++
private func ++<Element>(element: Element, list: ListNode<Element>) -> ListNode<Element> {
return list.insert(element: element)
}
它将在运算符右侧的列表右侧插入元素
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.