gpt4 book ai didi

swift - 如何在集合扩展中返回空子序列

转载 作者:行者123 更新时间:2023-12-03 08:27:59 24 4
gpt4 key购买 nike

我正在创建 Collection 的扩展,它返回 SubSequence。但是,如果函数的条件无效,我想返回一个空的 SubSequence 而不是 nil。

如何在 Collection 的扩展中返回空的 SubSequence

// basic example:
extension Collection {

func myFunction(condition: Bool) -> SubSequence {
guard condition else {
return *EmptySubSequence*
}
...
}

}

如果我只是对具体类型进行扩展,这将非常容易,但在将扩展限制为特定类型之前,我想知道它是否可以应用于 Collection 本身。

我发现的最好的办法是 prefix(0) 将返回长度为 0 的 SubSequence

最佳答案

如果您需要初始化一个空集合,您应该扩展 RangeReplaceableCollection 而不是 CollectionRangeReplaceableCollection需要符合它的类型来实现空的初始值设定项。


extension RangeReplaceableCollection {
func myFunction(condition: Bool) -> SubSequence {
guard condition else {
return .init()
}
// ...
}
}

关于swift - 如何在集合扩展中返回空子序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66073174/

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