【问题标题】:How to Have More Than One Return from a Function Inside a Subclass in Swift如何从 Swift 子类中的函数获得多个返回
【发布时间】:2016-05-18 20:20:58
【问题描述】:

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

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 值)。是否有可能从函数中返回多个返回值,如果可以,如何返回?顺便说一句,我不确定这是否重要,但我也希望稍后在我的代码中能够从子类外部访问这些返回值。

谢谢!

【问题讨论】:

标签: swift function return subclass


【解决方案1】:

你可以返回一个元组。

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/

【讨论】:

  • 哦,对了,没想到。你认为数组也可以吗?我以前从未使用过元组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 2021-06-16
  • 2023-02-22
  • 2011-04-04
  • 2018-11-24
  • 2015-09-14
相关资源
最近更新 更多