Is it possible to return some [T]
?
protocol P {
associatedtype X
func method() -> [X]
}
class Imp: P {
typealias X = Int
func method() -> some [Int] {
return [1]
}
}
Code above produces error "An 'opaque' type must specify only 'Any', 'AnyObject', protocols, and/or a base class"
EDIT:
So protocol hides underlying
@NSMangedObject
and expose only needed properties. It would be nice if A, B have Comparable
capabilities.
This isn't possible, but that's because it doesn't mean anything. some T
means "a specific, concrete type that conforms to T, known by the returning function at compile time, but not known by the caller." [Int]
is a type known to the caller. There is nothing "opaque" about it. This is identical to:
func method() -> [Int] { ... }