首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向上型推理与向下型推理

向上型推理与向下型推理
EN

Stack Overflow用户
提问于 2022-03-21 10:15:58
回答 1查看 51关注 0票数 0

我很熟悉打字推理。var x = 5;使x为int类型。但是,向上型推理和向下型推理实际上意味着什么。任何简单的例子帮助将是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2022-03-21 21:10:37

自下而上(向上)推理是指已知表达式组成部分的类型,并由此推断复合表达式的类型。示例:

代码语言:javascript
复制
var x = 5; // `x` is inferred to be an integer.
var y = someString + someOtherString; ; // `y` is inferred to be a string.

// `list` is inferred to be an array/list of strings.
var list = ['foo', 'bar', 'baz']; 

// If `someFunction` is generic, its type is determined from `x` and `y`.
someFunction(x, y); 

自上而下的(向下)推断正好相反:复合表达式的类型是已知的,而构成部分的类型是从它们推断出来的。示例:

代码语言:javascript
复制
// `[]` is inferred to be a `List<int>`.
List<int> list = [];

// The type of `element` is inferred from the type of `list`, which in this
// case is `int`.
var squares = list.map((element) => element * element);

您应该从表达式树的角度来考虑方向。例如:

代码语言:javascript
复制
      operation
       /    \
argument1   argument2

从参数推断操作的类型将是自下而上的;从操作中推断参数的类型将是自顶向下的。(这类似于自下而上和自上而下的解析。)

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

https://stackoverflow.com/questions/71555932

复制
相关文章

相似问题

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