如何访问扩展中的私有方法?

问题描述 投票:0回答:1

这是我不知道如何访问扩展的私有成员的代码

我尝试访问私有方法,但出现错误。如果有人告诉我如何访问它将会很有帮助

// giving error
private extension Numeric {
    private func cubed() -> Self {
        return self * self * self
    }
}

let nume = 2
let triple = num.cubed()
swift extension-methods
1个回答
0
投票

您无法访问私有功能。私有意味着它只能从父作用域调用。但如果它位于顶层,则只能在该文件中调用(顶层的 fileprivate 和 private 含义相同)。您也不应该向函数添加 private,因为扩展会传递访问级别(在本例中为 fileprivate)。

所以你的代码应该是这样的:

// no error
private extension Numeric {
    func cubed() -> Self {
        return self^3
    }
}

let nume = 2
let triple = num.cubed()

^ 运算符表示左数乘以右数的指数。所以 self^3 意味着 self * self * self。

© www.soinside.com 2019 - 2024. All rights reserved.