如何使用扩展来简化 Swift 代码?

How to use extensions to simplify Swift code?

假设我有很多 return 多于一个 UIColor 的功能。让我们来看看其中的一个:

func deepSkyBlue() -> UIColor {
    return UIColor(red: 0, green: 0.69, blue: 0.98, alpha: 1)
}

我的所有函数的 alpha 都等于 1.0,因此使用扩展并完全省略一个参数是有意义的。我该怎么做?

如果我们希望在不将 alpha 传递给 UIColor 构造函数时将其假定为 1.0,我们需要做的就是在扩展中添加一个新的构造函数。

extension UIColor {
    convenience init(red: CGFloat, green: CGFloat, blue: CGFloat) {
        self.init(red: red, green: green, blue: blue, alpha: 1.0)
    }
}

现在我们可以使用您尝试使用的三参数构造函数:

static func deepSkyBlue() -> UIColor {
    return UIColor(red: 0, green: 0.69, blue: 0.98)
}