相关疑难解决方法(0)

如何静态断言函数末尾无法到达

我在函数末尾有一个相当复杂的match语句(带有嵌套等)。ifthis 的每个分支都应该显式地从函数返回,或者调用某个-> !函数(例如process::exit)。

为了与其他程序员进行通信,并保护自己免受自己的伤害,我想告诉编译器断言此后的任何内容match都是无法访问的。我知道它知道如何静态地执行此操作,因为如果我将代码放在那里,我会收到编译时警告。

我尝试过的两件事:

  1. match语句分配给let _: ! = match .... 然而,这!仍然是实验性的,所以这不起作用

  2. 将其包裹match在封口中move || -> ! { match ... }();return但是,这限制了我只能从父函数中进行操作。


我的情况的具体细节不一定适用于一般情况:

  • 有问题的函数是fn main() -> ()
  • 条件逻辑必须要么分支到()返回函数,要么分支到!返回函数
  • 如果不这样做,则表明错误未正确处理或报告的路径
  • return条件逻辑中的 -ing 函数需要使用由匹配项展开的值

rust

1
推荐指数
1
解决办法
871
查看次数

标签 统计

rust ×1