是否可以返回一些[T]
?
protocol P {
associatedtype X
func method() -> [X]
}
class Imp: P {
typealias X = Int
func method() -> some [Int] {
return [1]
}
}
上面的代码产生错误“‘不透明’类型必须仅指定‘Any’、‘AnyObject’、协议(protocol)和/或基类”
编辑:
因此协议(protocol)隐藏底层@NSMangedObject并仅公开所需的属性。如果 A、B 具有可比
能力,那就太好了。
最佳答案
这是不可能的,但那是因为它没有任何意义。 some T
表示“符合 T 的特定具体类型,在编译时返回函数已知,但调用者不知道”。 [Int]
是调用者已知的类型。它没有什么“不透明”的。这与:
func method() -> [Int] { ... }
关于arrays - 返回一个不透明类型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60011284/