【发布时间】:2014-07-27 02:30:56
【问题描述】:
为什么可以推断闭包表达式的参数类型和返回类型,而不是 rust 中的函数?
【问题讨论】:
-
@dbaupp 这真是巧合:D
标签: type-inference rust
为什么可以推断闭包表达式的参数类型和返回类型,而不是 rust 中的函数?
【问题讨论】:
标签: type-inference rust
这只是一个设计决策:Rust 使用局部类型推断,而不是全局类型推断。理论上可以进行全局类型推断,但为了便于调试,Rust 有意识地避开了它,因为它会导致极其难以调试的编译问题(例如,这部分的微小变化会导致内部深处的编译错误)。
函数是全局的——因此它们的类型签名必须是明确的。
在函数内部的闭包是局部的——它们的类型可以被推断出来。 (当然,如果您将闭包存储在结构中,则需要在结构的类型定义中明确指定其类型。)
【讨论】: