Curl rust slack运行时错误:索引超出范围:len为0,但索引为0

Curl rust slack运行时错误:索引超出范围:len为0,但索引为0,curl,rust,runtime-error,Curl,Rust,Runtime Error,我正在使用,遇到了一个运行时错误,对于像我这样的初学者来说很难理解: 线程“main”在“索引超出范围:len为0,但索引为0”时惊慌失措,../src/libcollections/vec.rs:1265 堆栈回溯: 1:0x55c042e567e9-std::sys::backtrace::tracing::imp::write::h00e948915d1e4c72 2:0x55c042e5d9fc-std::panicking::default_hook::{{{{closure}}::H

我正在使用,遇到了一个运行时错误,对于像我这样的初学者来说很难理解:

线程“main”在“索引超出范围:len为0,但索引为0”时惊慌失措,../src/libcollections/vec.rs:1265
堆栈回溯:
1:0x55c042e567e9-std::sys::backtrace::tracing::imp::write::h00e948915d1e4c72
2:0x55c042e5d9fc-std::panicking::default_hook::{{{{closure}}::H7B8A1428183FB8
3:0x55c042e5cc49-std::panicking::default_hook::h41cf296f654245d7
4:0x55c042e5d338-标准::恐慌::带钩的生锈恐慌::h4cbd7ca63ce1aee9
5:0x55c042e5d192-标准::恐慌::开始恐慌::h93672d0313d5e8e9
6:0x55c042e5d100-标准::恐慌::开始恐慌(fmt)::hd0daa02942245d81
7:0x55c042e5d081-生锈\u开始\u展开
8:0x55c042e936df-core::panicking::panic_fmt::hbfc935564d134c1b
9:0x55c042e93683-核心::恐慌::恐慌检查::h08d619adcd972898
10:0x55c042e1f3db-curl::easy::easy::cvt::h8b0cee78a8555d56
11:0x55c042e1f1fd-curl::easy::easy::setopt_path::h97000cc95ffaf29e
12:0x55c042e20e05-curl::easy::default_configure::h81b9c3a40aadad76
13:0x55c042e1e715-卷曲::简单::简单::新::h6256decf6c19f143
14:0x55c042db16e4-松弛钩::松弛::松弛::发送::h14b50e23bd1ee165
15:0x55c042dab5af-deployer::main::had2f8b13f079aa74
16:0x55c042e654e6-\u生锈\u可能\u陷入恐慌\u
17:0x55c042e5c3c2-std::rt::lang_start::h53bf99b0829cc03c
18:0x7f176846682f-uu libc_ustart_umain
19:0x55c042da5e98-\u启动
20:0x0-
  • 它编译并在macOS上工作(无恐慌)
  • 它在几乎全新的Ubuntu 16.04上编译但失败(见上面的错误)
我有一些
println跟踪我的应用程序,因此我知道它在哪里崩溃,第20行回溯似乎也在这里。具有讽刺意味的是,该函数名为
success
,是长脚本的最后一步:

fn success()  {
    let slack = Slack::new("https://hooks.slack.com/MY_HOOK_URL").unwrap();
    let p = PayloadBuilder::new()
        .text("Deployment success.")
        .channel("#app-notifier")
        .username("Deploy Bot")
        .icon_emoji(":tropical_drink:")
        .build()
        .unwrap();

    let res = slack.send(&p);
    match res {
        Ok(()) => println!("Success msg sent."),
        Err(x) => println!("<!> Success error ^^: {:?}",x)
    }
}
fn成功(){
让松弛=松弛::新建(“https://hooks.slack.com/MY_HOOK_URL)展开();
设p=PayloadBuilder::new()
.text(“部署成功”)
.channel(“应用程序通知程序”)
.username(“部署Bot”)
.icon_表情符号(“:热带饮料:”)
.build()
.unwrap();
let res=slack.send(&p);
匹配资源{
Ok(())=>println!(“发送成功消息”),
Err(x)=>println!(“成功错误^^:{:?}”,x)
}
}

松弛URL在我的本地计算机上工作。如何解决这个特殊的情况自己?我只需要一些线索。

这是卷曲锈病的一个问题。固定在。我只需要运行
货物更新
,然后重建,现在一切都好了


感谢卢卡斯·卡尔伯托德、亚历克斯·克莱顿和《铁锈松弛》一书的作者的帮助。

这是卷曲铁锈的一个问题。固定在。我只需要运行
货物更新
,然后重建,现在一切都好了


感谢Lukas Kalbertodt、Alex Crichton和rust slack的作者的帮助。

现在还不清楚这里的问题是什么:标题似乎暗示您不理解在大小为0的集合上使用索引0会引起恐慌。。。然而,问题似乎主要是关于解释为什么这个索引0出现在这里。我建议编辑这个标题,使之成为关于
slack
,因为这是问题的核心。@MatthieuM。非常感谢。你说得对,我刚刚编辑过。现在好点了吗?很好,现在看起来好多了:)当然现在我不知道问题是什么:很明显,这个问题(或者至少是一个子问题)现在已经解决了:。现在还不清楚问题是什么:标题似乎暗示您不明白在大小为0的集合上使用索引0会引起恐慌。。。然而,问题似乎主要是关于解释为什么这个索引0出现在这里。我建议编辑这个标题,使之成为关于
slack
,因为这是问题的核心。@MatthieuM。非常感谢。你说得对,我刚刚编辑过。现在好点了吗?很好,现在看起来好多了:)当然现在我不知道问题是什么:X显然这个问题(或者至少是一个子问题)现在已经解决了:。