Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
结构的等价性?类型别名是;Swift";如何做到这一点?_Swift_Struct_Enums_Equivalence - Fatal编程技术网

结构的等价性?类型别名是;Swift";如何做到这一点?

结构的等价性?类型别名是;Swift";如何做到这一点?,swift,struct,enums,equivalence,Swift,Struct,Enums,Equivalence,也许我想得太多了,或者我的大脑抽筋了 typealias myZero = reallyLongAndObfuscatedEnum.ZERO 假设我有一些遗留代码,需要将其转换为Swift 3。这当然是我正在处理的一个非常简化的版本 enum reallyLongAndObfuscatedEnum { ///zero struct ZERO { static let float_t:Float32 = Float32(0) static let double_t:

也许我想得太多了,或者我的大脑抽筋了

typealias myZero = reallyLongAndObfuscatedEnum.ZERO
假设我有一些遗留代码,需要将其转换为Swift 3。这当然是我正在处理的一个非常简化的版本

enum reallyLongAndObfuscatedEnum {

  ///zero
  struct ZERO {
    static let float_t:Float32   = Float32(0)
    static let double_t:Float64  = Float64(0)
    static let cgfloat_t:CGFloat   = CGFloat(0)
    static let desc:String     = "/* nothingness, nada, it is the void  */"
  }
}
现在,不要键入:

 ReallyLongEquation * reallyLongAndObfuscatedEnum.ZERO.cgfloat_t  
我可以使用:

ReallyLongEquation * myZero.cgfloat_t

typealias是实现这一点的“快捷”方法吗?

如果您只想为
really long和obfuscatedenum.ZERO找到一个替代(且更短)名称,那么yes
typealias
就是一种方法

冒着让您走上错误道路的风险(因为我没有完整的上下文),您可能还希望查看Swift枚举。例如,您可以将枚举重写为

enum Example {
    case Zero(float_t: 0.0f, double_t: 0.0, cgfloat_t: CGFloat(0))

    var description: String {
        switch self {
        case .Zero:
            return "The Emptiness of Void"
        }
    }
}

如果您只想为
reallyLongAndObfuscatedEnum.ZERO
寻找一个替代(且更短)名称,那么yes
typealias
将是一个不错的选择

冒着让您走上错误道路的风险(因为我没有完整的上下文),您可能还希望查看Swift枚举。例如,您可以将枚举重写为

enum Example {
    case Zero(float_t: 0.0f, double_t: 0.0, cgfloat_t: CGFloat(0))

    var description: String {
        switch self {
        case .Zero:
            return "The Emptiness of Void"
        }
    }
}