关闭类型推断和生锈功能的差异

时间:2014-07-27 02:30:56

标签: type-inference rust

为什么可以推断闭包表达式的参数类型和返回类型而不是生锈函数?

1 个答案:

答案 0 :(得分:15)

这只是一个设计决策:Rust使用本地类型推断,但不使用全局类型推断。理论上可以进行全局类型推断,但为了便于调试,Rust有意识地避开了它,因为它可能导致极难调试的编译问题(例如,这部分的微小变化会导致编译错误深入内部)。

函数是全局的 - 因此它们的类型签名必须是显式的。

在函数内部的闭包是本地的 - 可以推断出它们的类型。 (当然,如果要在结构中存储闭包,则需要在结构的类型定义中显式指定其类型。)