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/

相关文章:

java - 多维长度数组反射java

arrays - mongoDB中数组中的字符串字段值长度

swift - 使用 AudioConverter Swift 将 .m4a 文件转换为 .aiff

swift - 是否可以在 Swift macOS 中使 NSBox 可点击(如 NSButton)?

ios - EventKit 从日历中删除事件

java - 将 std::max 转换为 Java

arrays - 我可以在 Go 中使用 "displaced"数组基数吗?