Hãy xem xét đoạn mã sau:PI liên tục là mơ hồ
fn main() {
let i = f32::consts::PI;
}
Với lỗi sau:
$ rustc --version
rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)
$ rustc -
<anon>:2:13: 2:28 error: ambiguous associated type; specify the type using the syntax `<f32 as Trait>::consts` [E0223]
<anon>:2 let i = f32::consts::PI;
^~~~~~~~~~~~~~~
error: aborting due to previous error
- Tại sao nó phàn nàn về một "loại liên quan đến"? Loại duy nhất tôi thấy ở đây là
f32
, không được liên kết. - Tại sao điều này lại mang tính phi thường? Tôi đã chỉ định rõ ràng
f32
. - Cú pháp
<f32 as Trait>::consts
này là gì? Tôi chưa bao giờ thấy nó trước đây. - Và, hiển nhiên, tôi có thể làm gì để khắc phục lỗi này và đặt biến của tôi thành PI?
lỗi là đáng ngạc nhiên (và là lỗi IMHO). Để làm cho mã hoạt động, bạn có thể chỉ định 'std :: f32 :: consts :: PI' hoặc thêm một sử dụng' std :: f32' –
Nó hoạt động, cảm ơn! Điều này giải quyết các câu hỏi thứ tư và thậm chí có thể 1 và 2 họ nếu nó thực sự là một lỗi (mà nó trông giống như) – Kapichu
Tôi báo cáo nó như là một vấn đề https://github.com/rust-lang/rust/issues/26760, vì vậy một Rust dev có thể nhìn vào nó. –