You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust async main返回Result仍触发?运算符E0277错误求助

错误根本原因

你代码最后一行的 Ok(()); 末尾多写了分号,导致main函数的实际返回值和你声明的返回类型不匹配。

Rust语法规则中:语句(末尾带分号的代码)默认返回单元类型(),只有不带分号的末尾表达式会作为函数的返回值。你声明main函数返回Result<(), Box<dyn std::error::Error>>,但因为最后一行加了分号,整个函数实际返回值是(),所以?运算符检测到所在异步块返回类型不符合要求,就抛出了对应报错。

修复方法

只需要删除最后一行Ok(());末尾的分号即可,修改后代码为:

Ok(())

修改后main函数的末尾表达式就是符合要求的Result类型,所有?运算符的使用场景都满足条件,报错会自动消除。

内容的提问来源于stack exchange,提问作者MB.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:09:02