什么是 extension_access_modifier swiftlint?

Posted

技术标签:

【中文标题】什么是 extension_access_modifier swiftlint?【英文标题】:What is extension_access_modifier swiftlint? 【发布时间】:2018-07-11 05:26:54 【问题描述】:

我将 Swiftlint 添加到一个项目中,但我无法理解针对 extension_access_modifier 的警告是什么。我主要在一个声明为 public 的类上看到它,但是在整个代码库中散布着一些扩展来添加功能。

public class Foo 



// In SomeOtherClass.swift
extension Foo  // Extension Access Modifier Violation: Prefer to use extension access modifiers
    public func baz()

只要在另一个类中有extension Foo,我就会在扩展上收到该警告。有人能解释一下它是什么吗?

【问题讨论】:

它可能更喜欢extensionpublic,而不是func @Alexander 当我将 public 添加到扩展(例如public extension foo)时,警告会出现在public func baz() 方法上 如果extension 明确为public,则func 不需要太多 @Alexander 你能把你的评论放在答案中吗?那行得通。在 baz() 函数上没有公共的公共扩展。 【参考方案1】:

更清楚地表明你的扩展是公开的,而不是它的所有成员:

喜欢:

public extension Foo 
    func bar()  ... 
    func baz()  ... 
    func qux()  ... 

结束

extension Foo 
    public func bar()  ... 
    public func baz()  ... 
    public func qux()  ... 

【讨论】:

哈哈。我的项目正好相反。我想它是为了避免使用您的扩展向您的图书馆用户发送垃圾邮件,即我得到:'No Extension Access Modifier Violation: Prefer not to use extension access modifiers (no_extension_access_modifier)' @Honey 我展示的两个变体最终都是spamming the user of your library with your extensionsbarbazqux 在这两个变体中仍然是公开的。 是的。我只是指出,如果您执行public extension Foo,我的 swiftlint 会弹出警告。当我搜索 I 得到的错误时,我登陆了这个页面。它类似于问题中的错误,但完全相反

以上是关于什么是 extension_access_modifier swiftlint?的主要内容,如果未能解决你的问题,请参考以下文章

时间是什么?时间同步是什么?GPS北斗卫星授时又是什么?

什么是拉电流,什么是灌电流?什么是吸收电流 ?

在java中,OOA是什么?OOD是什么?OOP是什么?

什么是DIV,全称是什么?

什么是抢占/什么是可抢占内核?到底有什么好处呢?

什么是 JNDI?它的基本用途是什么?什么时候使用?