【发布时间】:2019-04-27 06:57:25
【问题描述】:
我之前遇到了一个奇怪的情况。我写道:
if rand::random() < self.food_chance {...}
(self.food_chance 是 f32 类型)
我得到一个类型推断错误:
|
71 | if rand::random() < self.food_chance {
| ^^^^^^^^^^^^ cannot infer type for `T`
但是这段代码可以编译
if self.food_chance > rand::random() {...}
我想知道。这种行为有原因吗? 它甚至是预期的行为吗?
我对类型推断理论略知一二,而且我知道大多数算法对 lhs/rhs 是不可知的,所以我倾向于认为这是预期的行为,而不是直接导致错误。
我试着四处寻找,但我从来没有找到任何接近这个的东西。
【问题讨论】:
标签: rust type-inference