gpt4 book ai didi

rust - 文件或模块级别 'feature' 可能吗?

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

一些优化/算法使代码的可读性大大降低,因此保留在文件/模块中禁用复杂且笨拙的功能的能力很有用,这样修改此代码时引入的任何错误都可以针对简单代码进行快速测试.

目前使用 const USE_SOME_FEATURE: bool = true; 似乎是一种合理的方式,但使代码读起来有点奇怪,因为 USE_SOME_FEATURE 的使用方式类似于 C 中的 ifdef

例如,clippy 要你写:

if foo {
{ ..other code.. }
} else {
// final case
if USE_SOME_FEATURE {
{ ..fancy_code.. }
} else {
{ ..simple_code.. }
}
}

作为:

if foo {
{ ..other code.. }
} else if USE_SOME_FEATURE {
// final case
{ ..fancy_code.. }
} else {
// final case
{ ..simple_code.. }
}

恕我直言,这会损害可读性,可以忽略 - 但这是由于使用 bool 值引起的,其中 feature 可能更有意义。

有没有一种方法可以在文件中公开某个功能,而无需将其列在 crate 中?
(因为这仅用于内部调试和测试代码更改)。 p>

最佳答案

您可以使用构建脚本来创建新的配置条件。在构建脚本中使用 println!("cargo:rustc-cfg=whatever"),然后您可以在函数和语句中使用 #[cfg(whatever)] .

关于rust - 文件或模块级别 'feature' 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42406538/

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