如何识别Swift中的变量类型。对于例如如果我写
struct RandomStruct....
- 该类型应该为struct
而不是RandomStruct
或如果我写class RandomClass...
,则类型应为class
而不是RandomClass
。
我尝试过使用Mirror.subjectType
和type(of:)
,这两项都会将输出设为RandomStruct
和RandomClass
答案 0 :(得分:9)
您使用Mirror
即将结束:您可以查看Mirror
的{{3}}属性(枚举类型displayStyle
),反映您的类型实例
struct Foo {}
class Bar {}
let foo = Foo()
let bar = Bar()
if let displayStyle = Mirror(reflecting: foo).displayStyle {
print(displayStyle) // struct
}
if let displayStyle = Mirror(reflecting: bar).displayStyle {
print(displayStyle) // class
}
请注意,.optional
也是DisplayStyle
枚举Mirror
的情况,因此请务必反映具体(未展开)类型:
struct Foo {}
let foo: Foo? = Foo()
if let displayStyle = Mirror(reflecting: foo as Any).displayStyle {
// 'as Any' to suppress warnings ...
print(displayStyle) // optional
}
答案 1 :(得分:-3)
你可以这样检查;
*tCurrentPointer = '\0';
*(tCurrentPointer + 1) = '\0';
你可以用这种方式理解你的变量是哪种类。