gpt4 book ai didi

unit-testing - 如何在 Rust 中注释空切片的类型?

转载 作者:行者123 更新时间:2023-12-03 11:23:45 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Is there a way to initialize an empty slice?

(1 个回答)


12 个月前关闭。




假设我想比较一个 Vec<String>到测试中的文字空列表。
(我知道在实践中我可以检查 is_empty() ,但我想了解 Rust 打字在这里是如何工作的,我认为如果失败,断言相等会给出更清晰的信息。)
如果我只是说

    let a: Vec<String> = Vec::new();
assert_eq!(a, []);
get an error
error[E0282]: type annotations needed
--> src/main.rs:3:5
|
3 | assert_eq!(a, []);
| ^^^^^^^^^^^^^^^^^^ cannot infer type
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
我认为问题在于 rustc 无法判断我是否指的是 String 的空列表。 ,或 &str 的空列表, 或者是其他东西?
如何将所需的类型注释添加到 []文字?
这是否取决于 not-yet-stable type ascription feature ,或者是否有一种稳定的方法来指定这一点?

最佳答案

works 的一种方法今天是 as指定类型和长度的强制转换:

assert_eq!(a, [] as [&str; 0]);

关于unit-testing - 如何在 Rust 中注释空切片的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63092178/

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