首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个类型的提示中,哪个词是正确的?

在一个类型的提示中,哪个词是正确的?
EN

Stack Overflow用户
提问于 2017-07-11 11:51:34
回答 4查看 1.8K关注 0票数 10

在Rust中的类型提示中,可以在注释中使用部分类型,如下所示:

代码语言:javascript
复制
let myvec: Vec<_> = vec![1, 2, 3];

部分类型注释中下划线的正确术语是什么?我对锈蚀术语以及更多的学术性理论术语都感兴趣。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-11 13:45:43

经过深入研究,Vec<_>似乎一直被称为分部类型(因此在let x: Vec<_>中我们有一个部分类型注释,而Fn(String) -> _将是一个部分类型签名),但是在这个上下文中的_被不同地称为类型通配符或类型占位符,类型语法中的_可以被读取为“推断这种类型”的标记(在下面提到的PR中,编译器中的TyInfer )。

一些有趣的阅读:

公共关系中有趣的细节:

代码语言:javascript
复制
let x: _ = 5;
let x    = 5;

上面的两行是等价的,它们都被解析为具有TyInfer类型的变量TyInfer

票数 3
EN

Stack Overflow用户

发布于 2017-07-11 12:21:22

我找到了一个一份正式文件,其中的下划线是在模式的上下文中命名的,但我怀疑它是不是“严格的”名称:

模式由文字、非结构化数组或枚举构造函数、结构和元组、变量绑定规范、通配符(..)和占位符(_)组成。

在术语表中提供了以下描述:

_:“忽略”模式绑定(参见模式(忽略绑定))。还用于使整数文本可读性(请参阅参考(整数字))。

我无法找到具体指向部分类型注释的定义,但我认为“占位符”(或“类型占位符”,视上下文而定)并不含糊。

票数 8
EN

Stack Overflow用户

发布于 2017-07-11 13:24:54

在编译器中,它似乎被称为Infer (在syntax::astrustc::hirrustc::ty中)

我认为这个命名有点合理,因为在进行类似于印地语的类型推断之前,这些_被替换为新的(类型)推理变量

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

https://stackoverflow.com/questions/45033804

复制
相关文章

相似问题

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