gpt4 book ai didi

swift - : Separator. Iterator.Element == Self.Iterator.Element.Iterator.Element 是什么意思

转载 作者:行者123 更新时间:2023-11-28 12:30:11 32 4
gpt4 key购买 nike

什么意思:

Separator.Iterator.Element == Self.Iterator.Element.Iterator.Element

this (Swift 标准库)swift 实例方法声明?

func joined<Separator>(separator: Separator) -> 
JoinedSequence<Array<Element>> 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 : Sequence>(separator: Separator) -> JoinedSequence<Self>
where Separator.Iterator.Element == Iterator.Element.Iterator.Element
}

它需要一个 separator: 参数,它本身必须是一个序列。约束 Separator.Iterator.Element == Iterator.Element.Iterator.Element 只是意味着分隔符的元素类型必须与序列的内部元素类型相同joined(separator) 被调用。

例如,您在 [[Int]] 上调用它。是Iterator.Element.Iterator.Element(数组的元素类型的元素类型),是Int。因此,您使用的分隔符必须是 Int 序列,[Int] 是。

尝试传入一个 [String] 作为分隔符——你会得到一个编译器错误,因为 StringInt,因此不会'满足要求 Separator.Iterator.Element == Iterator.Element.Iterator.Element

关于swift - : Separator. Iterator.Element == Self.Iterator.Element.Iterator.Element 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248511/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com