"?-6ren"> "?-为什么会出现 panic ? pub fn testbool() -> bool { vec!['a', 'd', 'i', 'e', 'p', 'r'] .iter() -6ren">
gpt4 book ai didi

rust - 为什么测试失败并显示消息 "panicked at Box"?

转载 作者:行者123 更新时间:2023-11-29 07:56:48 25 4
gpt4 key购买 nike

为什么会出现 panic ?

pub fn testbool() -> bool {
vec!['a', 'd', 'i', 'e', 'p', 'r']
.iter()
.enumerate()
.find(|(_i, &c)| c != 'c')
.is_none()
}

#[test]
fn test_testbool() {
assert!(testbool(), true);
}

playground

---- test_testbool stdout ----
thread 'test_testbool' panicked at 'Box<Any>', src/lib.rs:11:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

它可能很简单,但我不明白。

最佳答案

您正在使用 assert! .这期望第一个参数是 bool 表达式。任何后续参数都被视为格式字符串和参数:

assert!(testbool(), "Did not work: {}", 42);
thread 'test_testbool' panicked at 'Did not work: 42'

您可能想删除 assert! 的第二个参数或切换到 assert_eq! .


我认为根本问题来自 bug (#30143)在某些情况下,允许将非格式字符串用作格式字符串。

关于rust - 为什么测试失败并显示消息 "panicked at Box<Any>"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56027354/

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