繁体   English   中英

如何在具有许多变体的枚举上拆分真正的长匹配?

[英]How to split up really long match on enum with many variants?

通常的最佳实践是在一个枚举上拆分一个非常长的匹配并处理数十个变体,每个变体都有数十或数百行代码?

我已经开始为每种情况创建辅助函数,并且只调用传入枚举字段(或它们被调用的任何内容)的那些函数。 但是多次使用MyEnum::MyCase{a,b,c} => handle_mycase(a,b,c)似乎有点多余。

如果这是最佳实践,是否可以直接在该辅助函数的参数中解构MyEnum::MyCase ,尽管从技术上讲它是可反驳的,因为实际上我已经知道我在正确的情况下调用它?

也许板条箱enum_dispatch可以帮助您。

IIRC,在高层次上:它假设您的所有枚举变体都实现了带有函数handle_mycase 然后可以直接在枚举上调用handle_mycase并将其分派到具体结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM