是否可以返回some [T]?
protocol P {
associatedtype X
func method() -> [X]
}
class Imp: P {
typealias X = Int
func method() -> some [Int] {
return [1]
}
}上面的代码产生错误“一个'opaque‘类型只能指定'Any','AnyObject',协议和/或基类”
编辑:

所以协议隐藏了底层的@NSMangedObject,只公开了需要的属性。如果A、B有Comparable功能就好了。
发布于 2020-02-01 05:21:51
这是不可能的,但那是因为它没有任何意义。some T的意思是“符合T的特定的、具体的类型,在编译时由返回函数知道,但调用者不知道”。[Int]是调用者知道的类型。它没有任何“不透明”之处。这与以下内容相同:
func method() -> [Int] { ... }https://stackoverflow.com/questions/60011284
复制相似问题