提问者:小点点

扩展方法在Swift中返回值


我是Swift 2的新手。正在学习扩展,我发现它与OC相比是一个很酷的功能。

苹果开发者举例:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html

extension Int {
    mutating func square() {
        self = self * self
    }
}
var someInt = 3
someInt.square()
// someInt is now 9

所以我在想,有没有可能有这样的扩展来返回值:

extension Int {
    func square() {
        return self * self
    }
}
var someInt = 3
someInt.square()
//ERROR: error: no '*' candidates produce the expected contextual result type '()'

我的问题是如何在扩展中返回值?谢谢


共1个答案

匿名用户

就像任何其他函数一样,您需要指定返回类型。

extension Int {
    func squared() -> Int {
        return self * self
    }
}
let someInt = 3
let square = someInt.squared()