swift - 如何在 Swift 中从子类内的函数获得多个返回值

标签 swift function return subclass

所以,我在子类中有这个函数:

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
    }

但是,我不想返回 UIColor,而是想单独返回红色、绿色、蓝色和 alpha(这样我以后就不必从 UIColor 获取 rgb 值)。函数是否可以有多个返回值?如果可以,如何实现?顺便说一句,不确定这是否重要,但我也希望能够稍后在我的代码中从子类外部访问这些返回。

谢谢!

最佳答案

您可以返回一个元组。

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/

关于swift - 如何在 Swift 中从子类内的函数获得多个返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35282049/

相关文章:

function - 退出 PowerShell 函数但继续执行脚本

c - C 中的文件、访问指针、读取和写入文件

python - 如何使用 C 文件返回一个值,然后使用 os.system 在 python 中获取它?

C:从函数中的循环中删除多个值的方法

ios - 带有集群 : how to display multiple annotations on same view 的 MapView

ios - 在 UITableView 上出队和重新排队时,MKMapView 不断缩小

ios - 为什么会有 exc_breakpoint?

uiimagepickercontroller - 如何在 swift 中使用 UIImagePickerController 捕获相机?

mysql - 我可以使用函数作为 mysql_close(function) 的参数吗?

c# - 在静态类中返回多个值