提问人:Piepants 提问时间:11/16/2023 最后编辑:HenrikPiepants 更新时间:11/17/2023 访问量:45
当枚举具有关联值时,如何结合使用 if with case
How to use combined if with case when the enum has associated value
问:
我有一个这样的:enum
enum TheType {
case a (CustomData)
case b (NSDictionary)
case c (String?)
case d
case e
...
}
在一个特定的地方,我只想检查类型是否是,但是在查阅了几个教程并尝试了几种排列之后,我仍然无法编译它。这是我尝试的最新变化:b
if
case
let theType = TheType.b([:])
if case let TheType.b(_) == theType {...}
产生错误:
“_”只能出现在作业左侧的图案中
或者这会产生不同的错误:
if case let TheType.b(let theDictionary) == theType {...}
在左边交换东西也会产生错误。theType
==
如何使用语句来检查值的类型?if
enum
答:
2赞
vadian
11/16/2023
#1
If case let
不仅仅是对方程式的检查,算子是错误的。==
要么是
if case let TheType.b(theDictionary) = theType {...}
或
if case TheType.b(let theDictionary) = theType {...}
如果相关值无关紧要,则为
if case TheType.b(_) = theType {...}
甚至
if case TheType.b = theType {...}
注意赋值运算符和let
评论