结构的等价性?类型别名是;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找到一个替代(且更短)名称,那么yestypealias
就是一种方法
冒着让您走上错误道路的风险(因为我没有完整的上下文),您可能还希望查看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
寻找一个替代(且更短)名称,那么yestypealias
将是一个不错的选择
冒着让您走上错误道路的风险(因为我没有完整的上下文),您可能还希望查看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"
}
}
}