如何快速定义特定枚举案例的数组 [英] how to define an array of a particular enum case in swift
本文介绍了如何快速定义特定枚举案例的数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想定义一个枚举大小写,该枚举大小写由同一枚举的特定实例递归定义
I want to define an enum case which is recursively defined by a particular instance of the same enum
enum Menu {
case item(String)
case submenu([.item]) // i want a submenu to be defined by an array of items
}
子菜单
大小写不正确:
案例子菜单([.item])
如何限制它?
推荐答案
枚举
的所有情况都属于相同的 enum
类型,因此您不能声明只能容纳特定枚举大小写的数组
.
All cases of an enum
are of the same enum
type, so you cannot declare an Array
that can only hold a specific case of an enum.
但是,您可以通过创建2个枚举而不是一个枚举并使 Menu.submenu
枚举大小写以另一个枚举作为其关联值来实现目标.
However, you can achieve your goals by creating 2 enums instead of one and making the Menu.submenu
enum case take the other enum as its associated value.
enum Menu {
case item(MenuItem)
case submenu([MenuItem])
}
enum MenuItem {
case item(String)
}
然后您可以像使用它
let menu = Menu.item(.item("main"))
let submenu = Menu.submenu([.item("a"), .item("b")])
这篇关于如何快速定义特定枚举案例的数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文