Swift 的元组(Tuple)

May 06, 2023 • 预计阅读时间 1 分钟

元组(tuple) 是 Swift 的一种数据结构,可以理解为匿名的 struct

元组可以是参数,返回值,也可以是属性类型,合理使用元组可以使代码更简洁:

extension UIColor {

    var rgba: (r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat) {
        var r: CGFloat = 0
        var g: CGFloat = 0
        var b: CGFloat = 0
        var a: CGFloat = 0
        getRed(&r, green: &g, blue: &b, alpha: &a)

        return (r: r, g: b, b: b, a: a)
    }
}

UIColor 增加一个属性 rbga ,用于获取颜色的 RGBA 值:

let rgba = UIColor.red.rgba
print("r: \(rgba.r), g: \(rgba.g), b: \(rgba.b), a: \(rgba.a)")

如果没有元组这个数据结构,就需要使用传统的 struct,写法如下:

extension UIColor {

    struct RGBA {
        let r: CGFloat
        let g: CGFloat
        let b: CGFloat
        let a: CGFloat
    }

    var rgba: RGBA {
        var r: CGFloat = 0
        var g: CGFloat = 0
        var b: CGFloat = 0
        var a: CGFloat = 0
        getRed(&r, green: &g, blue: &b, alpha: &a)

        return RGBA(r: r, g: b, b: b, a: a)
    }
}

Swift 是强类型语言,这意味着即使元组和结构体的定义一样,这两者也是不能混用的,编译器会报类型不匹配的错误。

Swift
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

OpenWRT 22 配置 NAT66

修改 TTL 的值