如何从 Swift 的子类中的函数中获取多个 Return
How to Have More Than One Return from a Function Inside a Subclass in Swift
所以,我在子类中有这个函数:
func colorAt(x x: Int, y: Int)->UIColor {
assert(0<=x && x<width)
assert(0<=y && y<height)
let uncastedData = CGBitmapContextGetData(context)
let data = UnsafePointer<UInt8>(uncastedData)
let offset = 4 * (y * width + x)
let alpha: UInt8 = data[offset]
let red: UInt8 = data[offset+1]
let green: UInt8 = data[offset+2]
let blue: UInt8 = data[offset+3]
let color = UIColor(red: CGFloat(red)/255.0, green: CGFloat(green)/255.0, blue: CGFloat(blue)/255.0, alpha: CGFloat(alpha)/255.0)
return color
}
但是,我不想 return 设置 UIColor,而是想分别 return 红色、绿色、蓝色和 alpha(这样我就不必从 UIColor 获取 rgb 值之后)。是否可以从函数中得到多个 return,如果可以,怎么办?顺便说一句,不确定这是否重要,但我也希望稍后在我的代码中能够从子类外部访问这些 return。
谢谢!
你可以return一个元组。
func colorAt(x x: Int, y: Int) -> (CGFloat, CGFloat, CGFloat) {
// some stuff to make red, green, and blue vars
return (redVar, greenVar, blueVar)
}
关于元组的 Apple 文档非常好,但如果您想大量阅读,这里有另一个来源供您参考:
http://www.codingexplorer.com/tuples-in-swift-create-read-and-return/
所以,我在子类中有这个函数:
func colorAt(x x: Int, y: Int)->UIColor {
assert(0<=x && x<width)
assert(0<=y && y<height)
let uncastedData = CGBitmapContextGetData(context)
let data = UnsafePointer<UInt8>(uncastedData)
let offset = 4 * (y * width + x)
let alpha: UInt8 = data[offset]
let red: UInt8 = data[offset+1]
let green: UInt8 = data[offset+2]
let blue: UInt8 = data[offset+3]
let color = UIColor(red: CGFloat(red)/255.0, green: CGFloat(green)/255.0, blue: CGFloat(blue)/255.0, alpha: CGFloat(alpha)/255.0)
return color
}
但是,我不想 return 设置 UIColor,而是想分别 return 红色、绿色、蓝色和 alpha(这样我就不必从 UIColor 获取 rgb 值之后)。是否可以从函数中得到多个 return,如果可以,怎么办?顺便说一句,不确定这是否重要,但我也希望稍后在我的代码中能够从子类外部访问这些 return。
谢谢!
你可以return一个元组。
func colorAt(x x: Int, y: Int) -> (CGFloat, CGFloat, CGFloat) {
// some stuff to make red, green, and blue vars
return (redVar, greenVar, blueVar)
}
关于元组的 Apple 文档非常好,但如果您想大量阅读,这里有另一个来源供您参考: http://www.codingexplorer.com/tuples-in-swift-create-read-and-return/