这是我不知道如何访问扩展的私有成员的代码
我尝试访问私有方法,但出现错误。如果有人告诉我如何访问它将会很有帮助
// giving error
private extension Numeric {
private func cubed() -> Self {
return self * self * self
}
}
let nume = 2
let triple = num.cubed()
您无法访问私有功能。私有意味着它只能从父作用域调用。但如果它位于顶层,则只能在该文件中调用(顶层的 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。