首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >斯威夫特。在内部协议中声明私有函数

斯威夫特。在内部协议中声明私有函数
EN

Stack Overflow用户
提问于 2017-03-04 02:11:59
回答 2查看 7.8K关注 0票数 7

我如何实现这样的东西(不编译):

代码语言:javascript
复制
internal protocol InternalPrivateMix {
    private func doPrivately()
    internal func doInternaly()
}

基本上,我想做一个承诺,确认类实现了一些私下的功能。这更多的是用于自我文档。显然,我可以在我的类中实现这些功能,而不需要正式遵循协议,并编写文档来描述每个类都应该实现此功能。不过,如果我能更正式地与其他开发人员交流我的意图,那就太好了。

编辑:我尝试在一个文件中实现两个协议,一个是私有的,一个是内部的,正如@creeperspeak所建议的那样。然而,我不能在其他文件中遵循私有协议,所以它不能工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-04 02:23:20

From Apple's docs看起来实现你想要做的事情的唯一方法是实现两个协议-一个是内部的,一个是私有的,正如苹果公司所说的那样,“你不能将协议要求设置为与它支持的协议不同的访问级别。”

票数 6
EN

Stack Overflow用户

发布于 2017-10-29 11:48:16

您可以这样做:

代码语言:javascript
复制
protocol P {
    func int()
}

extension P {
    func int() {
        print("int()")
        priv()
    }
    private func priv() {
        print("priv()")
    }
}

或许能满足你的目的--我就是用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42585775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档