gpt4 book ai didi

rust - 在 Rust 中,如何将发散函数作为参数传递给另一个函数

转载 作者:行者123 更新时间:2023-11-29 08:01:28 29 4
gpt4 key购买 nike

非发散函数工作正常

fn test(f: &Fn() -> u8) {}

但是我不能接受这样的发散函数

fn test_diverging(f: &Fn() -> !) {}

出现以下错误

error[E0658]: The `!` type is experimental (see issue #35121)
--> examples/two_tasks.rs:44:31
|
44 | fn test_diverging(f: &Fn() -> !) {}
| ^

查看issue #35121我可以看到如何解决它,但与此同时是否有解决方法?

最佳答案

! 在某些情况下仍处于试验阶段,这意味着它在稳定的编译器(截至今天的 1.33)上不可用。您可以在夜间编译器上使用它,但您必须明确选择加入 feature(never_type):

#![feature(never_type)]
fn test_diverging(f: &Fn() -> !) {}

( playground )

请注意,这意味着该功能可能会在稳定之前发生变化,因此您接受 future 编译器版本会破坏您的代码的风险。

另见

关于rust - 在 Rust 中,如何将发散函数作为参数传递给另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55602134/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com