什么意思:
Separator.Iterator.Element == Self.Iterator.Element.Iterator.Element
hiện hữucái này (Swift 标准库)swift 实例方法声明?
func joined(separator: Separator) ->
JoinedSequence<>> where Separator : Sequence,
Separator.Iterator.Element == Self.Iterator.Element.Iterator.Element
这是苹果的例子:
let nestedNumbers = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
let joined = nestedNumbers.joined(separator: [-1, -2])
print(Array(joined))
// Prints "[1, 2, 3, -1, -2, 4, 5, 6, -1, -2, 7, 8, 9]"
joined(separator:)
可用于调用序列序列:
extension Sequence where Iterator.Element : Sequence {
// ...
public func joined(separator: Separator) -> JoinedSequence
where Separator.Iterator.Element == Iterator.Element.Iterator.Element
}
它需要一个 separator:
参数,它本身必须是一个序列。约束 Separator.Iterator.Element == Iterator.Element.Iterator.Element
只是意味着分隔符的元素类型必须与序列的nội bộ元素类型相同joined(separator)
被调用。
例如,您在 [[Int]]
上调用它。是Iterator.Element.Iterator.Element
(数组的元素类型的元素类型),是Int
。因此,您使用的分隔符必须是 Int
序列,[Int]
是。
尝试传入一个 [String]
作为分隔符——你会得到一个编译器错误,因为 Sợi dây
≠ Int
,因此不会'满足要求 Separator.Iterator.Element == Iterator.Element.Iterator.Element
.
Tôi là một lập trình viên xuất sắc, rất giỏi!