首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一种奇怪的表示 T:Item

我们都知道,Rust有一种叫 完全限定语法(fully-qualified syntax) 的东西。请看下面的例子:

编译,会提示如下错误:

应该写成:

就可以编译通过了,这就是所谓:完全限定语法。

但是,在阅读一些工程的代码的时候,可以发现一种不寻常的用法。我设计了一个例子如下:

上面例子中,这个写法,有点超出我们的认知。泛型可以直接引用其 Trait bound 的 associated type 吗?好像是的。本例子能编译通过并顺利运行。

再来看一个稍微复杂一点的例子:

上例中的也是这种情况。

其实也并不难理解,只是在第一次遇到的时候,会很奇怪,Rust 怎么会有这种语法。于是设计了例子来验证这个问题。原来还真是可以的。

本文所有示例地址:https://github.com/daogangtang/learn-rust/tree/master/04generic_with_associated_type

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200312A0IK1200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券