Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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-Enum内省_Swift_Enums - Fatal编程技术网

Swift-Enum内省

Swift-Enum内省,swift,enums,Swift,Enums,我知道Swift中有很多关于内省的问题,但我找不到一个明确的答案: 有没有办法知道类型的变量Any(例如函数参数)是否是枚举 我尝试了myVar是enum,myVar是enum.self,myVar是enum.Type。。。 我显然没有工作(反正我也没有多大希望)。您可以检查这是否是一个特定枚举的情况: let suit = Suit.Spades var item:Any item = suit item is Suit // true item = "string" item is Suit

我知道Swift中有很多关于内省的问题,但我找不到一个明确的答案:

有没有办法知道
类型的变量Any
(例如函数参数)是否是枚举

我尝试了
myVar是enum
myVar是enum.self
myVar是enum.Type
。。。
我显然没有工作(反正我也没有多大希望)。

您可以检查这是否是一个特定枚举的情况:

let suit = Suit.Spades
var item:Any
item = suit
item is Suit // true
item = "string"
item is Suit // false

您无法检查它是否属于任何枚举。

此问题需要澄清。使用枚举是创建新类型的好方法,但枚举本身不是类型。如果您已经创建了一个新的枚举类型,
is
将用于测试您的var是否属于该类型。如果您认为必须知道类型是否是作为枚举创建的,那么我认为您对问题的思考是错误的。也许在向抽象的阶梯迈进一步后再问你一次问题。