【问题标题】:How to restrict a protocol to value types only?如何将协议限制为仅值类型?
【发布时间】:2015-11-10 04:51:10
【问题描述】:

this question 在精神上相似,除了我希望能够定义一个只能由枚举、结构等采用的协议,而不是将协议限制为仅类。这可能吗?

【问题讨论】:

    标签: swift swift2


    【解决方案1】:

    我找不到答案,但通过玩弄,我得出的结论是你不能。由于要将协议限制为仅类,请在其前面加上 class

    protocol SomeProto: class {
        func structYourStuff() -> Void
    }
    

    假设这在其他类型中是一致的,我尝试了

    protocol SomeProto: struct {
        func structYourStuff() -> Void
    }
    

    但是 Xcode 在一行上给了我五个不同的错误,这让我得出结论,你不能。不过我可能完全错了,我大约一周前才开始学习 Swift

    【讨论】:

    • 没错,我们不能这样做。恕我直言,这将是该语言的有用扩展。
    • @CouchDeveloper 你让我想到了,也许有一些方法可以构建封闭的功能,因为我们拥有自定义运算符的灵活性。不过我想不出这会如何工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2020-06-24
    • 1970-01-01
    相关资源
    最近更新 更多