什么是 extension_access_modifier swiftlint?

What is extension_access_modifier swiftlint?

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

public class Foo {

}

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

每当另一个 class 中有 extension Foo 时,我就会在扩展中收到该警告。有人能解释一下它是什么吗?

更清楚地表达您的扩展是 public,而不是它的所有成员:

更喜欢:

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

超过

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