首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步std机箱的connect()函数的返回类型是未来的类型吗?

异步std机箱的connect()函数的返回类型是未来的类型吗?
EN

Stack Overflow用户
提问于 2022-08-08 09:08:12
回答 1查看 77关注 0票数 1

函数connect()的文档表示它将返回一个未来。

此方法将创建一个新的TCP套接字,并尝试将其连接到提供的addr。一旦流成功连接,返回的未来将被解析,或者如果发生错误,它将返回一个错误。

从它的签名pub async fn connect<A: ToSocketAddrs>(addrs: A) -> io::Result<TcpStream>中,返回值的类型为std::io::let mut socket = async_std::net::TcpStream::connect((host, port)).await?;,可以与“等待”语法(如let mut socket = async_std::net::TcpStream::connect((host, port)).await?;)一起使用。

但是我找不到std::io::Result类型的未来特性实现。我的问题是:

  1. std::io::结果实现未来特征吗?
  2. 如果它没有实现这个特性,为什么我们还可以在上面应用“等待”语法呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-08 09:24:30

函数签名中的async关键字意味着函数返回一个Future。这两个函数签名具有相同的声明返回类型:

代码语言:javascript
复制
async fn foo() -> T { ... }

fn foo() -> impl Future<Output=T> { ... }

可以将此返回类型转换应用于任何标记为async的函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73275393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档