假设有struct
两个变量:a
和b
。
是否可以根据条件声明两个变量之一并忽略另一个?
换句话说,是否有可能struct
:
struct example {
let a: Int
let b: Int
}
去做这个:
struct example {
if (condition) {
let a: Int
} else {
let b: Int
}
}
这是不可能的,因为如果你这样做了,这段代码会做什么:
let e = exampleReturningFunction()
print(e.a)
如果condition
是假的,这应该崩溃吗?应该a
有一些默认值吗?什么价值?(如果是这样,只需在结构中使用默认值。)
在大多数情况下,您真正想要的是带有关联数据的枚举:
enum Example {
case a(Int)
case b(Int)
}
如果有很多相关的属性,你可以将它们组合在一起:
struct A { ... }
struct B { ... }
enum Example {
case a(A)
case b(B)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句