Если я напишу:
let x = f32::consts::E;
Я получаю сообщение об ошибке:
error[E0223]: ambiguous associated type
--> src/main.rs:32:21
|
32 | let x = f32::consts::E;
| ^^^^^^^^^^^^^^ help: use fully-qualified syntax: `<f32 as Trait>::consts`
Но если я вместо этого напишу:
let x = std::f32::consts::E;
То все в порядке. Сообщение об ошибке сбивает с толку, потому что, насколько я понимаю, f32
- это конкретный конкретный тип, а не признак. Я не уверен, зачем мне использовать какой-то особый синтаксис признаков.
Что, по мнению компилятора, я делаю, и почему мое исправление помогает?