我是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 '()'
我的问题是如何在扩展中返回值?谢谢
就像任何其他函数一样,您需要指定返回类型。
extension Int {
func squared() -> Int {
return self * self
}
}
let someInt = 3
let square = someInt.squared()