gpt4 book ai didi

debugging - 断言具有副作用的函数的返回值的 Rust 方法是什么?

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

在 C 中,断言可以通过定义 NDEBUG 来消失,所以我们倾向于这样写:

const bool ok = my_function();
assert(ok);

但是,无论配置如何,Rust 中的断言似乎始终存在于每种类型的构建中,因此认为更好的是:

let ok = my_function();
assert!(ok);

或者:

assert!(my_function());

最佳答案

it looks like asserts in Rust are always present in every type of build

是的,assert!总是在那里,但是debug_assert!仅在调试版本中启用。


what's considered better

这是基于意见的。做任何让你开心的事。我个人被将副作用代码放入由于条件编译而消失的代码中的次数比我想要的次数多了,所以我赞成将断言单独一行。但是,当断言被编译掉时,这将导致未使用的变量警告。

更好的是,重新评估为什么您在断言中有副作用;我敢打赌这几乎总是一个坏主意。

关于debugging - 断言具有副作用的函数的返回值的 Rust 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51449827/

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