Swift使用Typealias命名元组类型

示例

有时,您可能希望在整个代码中的多个位置使用相同的元组类型。这会很快变得混乱,尤其是当您的元组很复杂时:

// 通过圆心和半径定义圆元组
let unitCircle: (center: (x: CGFloat, y: CGFloat), radius: CGFloat) = ((0.0, 0.0), 1.0)

func doubleRadius(ofCircle circle: (center: (x: CGFloat, y: CGFloat), radius: CGFloat)) -> (center: (x: CGFloat, y: CGFloat), radius: CGFloat) {
    return (circle.center,circle.radius* 2.0)
}

如果在多个地方使用某种元组类型,则可以使用typealias关键字来命名元组类型。

// 通过圆心和半径定义圆元组
typealias Circle = (center: (x: CGFloat, y: CGFloat), radius: CGFloat)

let unitCircle: Circle = ((0.0, 0.0), 1)

func doubleRadius(ofCircle circle: Circle) -> Circle {
    // 别名元组还可以访问原始元组类型的值标签。
    return (circle.center,circle.radius* 2.0)
}

但是,如果您发现自己经常这样做,则应考虑改用a struct。