我想要一个变量,它可以有多种类型(只有我定义的类型),例如:
var example: String, Int = 0
example = "hi"
该变量应该只能保存 Int 和 String 类型的值。
这可能吗?
感谢您的帮助 ;)
您可能正在寻找“具有关联值的枚举”:
enum StringOrInt {
case string(String)
case int(Int)
}
您可以分配一个字符串或一个整数:
var value: StringOrInt
value = .string("Hello")
// ...
value = .int(123)
检索内容是通过 switch 语句完成的:
switch value {
case .string(let s): print("String:", s)
case .int(let n): print("Int:", n)
}
如果您声明遵守Equatable
那么协议
您还可以检查值是否相等:
enum StringOrInt: Equatable {
case string(String)
case int(Int)
}
let v = StringOrInt.string("Hi")
let w = StringOrInt.int(0)
if v == w { ... }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)