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

Vis*_*mud 7 type-inference rust

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

Chr*_*gan 15

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

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

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

  • 有些函数是私有的,比如局部闭包。因此推断私有函数的返回类型与局部闭包具有相同的价值。 (2认同)