gpt4 book ai didi

rust - 有什么作用??使用rust 吗?

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

这是 action 中的一个示例:

let msg = stream.next().await.context("expected a message")??;
只是 ?被做了两次?如果是这样,为什么在这种情况下需要这样做?

最佳答案

是的,它只是 ?进行两次;没有??运算符(operator)。streamWsStream . WsStream是在同一模块中定义的类型。 WsStream实现 Stream .stream.next()调用 StreamExt::next ,它返回产生 Option<Self::Item> 的 future . Self::Item定义为 tungstenite::Result<Message> ( = Result<Message, tungstenite::Error> ) 对于 WsStream .这意味着 stream.next().await 的结果是 Option<Result<Message, tungstenite::Error>> 类型.
然后, context 应用于值。 ContextOption<T> 实现对于 Result<T, E> ,但输出始终是 Result .但是,context不会压扁任何东西,所以我们最终得到 Result<Result<Message, tungstenite::Error>, anyhow::Error> . ?的两种用途因此用于处理 Result 的两个级别s。

关于rust - 有什么作用??使用rust 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62723403/

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