arrays - 返回一个不透明类型的数组

标签 arrays swift opaque-result-type

是否可以返回一些[T]

protocol P {
    associatedtype X
    func method() -> [X]
}

class Imp: P {
    typealias X = Int

    func method() -> some [Int] {
        return [1]
    }
}

上面的代码产生错误“‘不透明’类型必须仅指定‘Any’、‘AnyObject’、协议(protocol)和/或基类”

编辑: Diagram 因此协议(protocol)隐藏底层@NSMangedObject并仅公开所需的属性。如果 A、B 具有可比能力,那就太好了。

最佳答案

这是不可能的,但那是因为它没有任何意义。 some T 表示“符合 T 的特定具体类型,在编译时返回函数已知,但调用者不知道”。 [Int] 是调用者已知的类型。它没有什么“不透明”的。这与:

func method() -> [Int] { ... }

关于arrays - 返回一个不透明类型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60011284/

相关文章:

c - free() C 中的二维数组使用 malloc

ios - Text 或 Image 等 View 类型如何符合 SwiftUI 中的 View 协议(protocol)?

swift - 将不透明类型与关联类型一起使用

jquery - Jquery中如何将键和值同时推送到数组中

python - 通过 2D 数组作为索引范围对 1D 数组进行 Numpy View

javascript - jQueryUI Modal - 添加多个按钮

ios - Google Analytics 屏幕跟踪 swift 3.0 不起作用

ios - fatal error : unexpectedly found nil while unwrapping an Optional value in Swift 3

swift - 如何从标准日期时间格式中提取日期和时间?