Các nhà xây dựng enum được xác định trong cùng một tệp không còn giải quyết.lỗi enum: tên chưa được giải quyết
enum Mode {
Global,
Local,
}
fn which_mode() -> Mode {
Global
}
fn main() {
match which_mode() {
Global => println!("Global"),
Local => println!("Local"),
}
}
Trình biên dịch đưa ra một thông báo lỗi "chưa được giải quyết tên Global
" trong hàm which_mode
. Khi tôi đủ điều kiện nó như là Mode::Global
, nó hoạt động. Bây giờ, nó nghĩ rằng các Global
trong tuyên bố match
là một ràng buộc, và do đó không thể chối cãi!
Hành vi này gần đây - đêm của ngày 11 tháng 11 đã biên dịch thành công mã trên. Với hành vi hiện tại này là như thế nào, tại sao phải làm như vậy Some
, Ok
, vv không cần đường dẫn đủ điều kiện?
Thực tế, tôi mất vài phút để hiểu rằng Rust đang xử lý 'Toàn cầu' trong' trận đấu' như một ràng buộc. Đôi khi tôi muốn Rust phân biệt (_a la_ Erlang, nhưng ngược lại trong chi tiết cụ thể) giữa ** ban đầu ** chữ thường so với chữ thường của tên khi cố gắng ràng buộc: chữ hoa nghĩa là enum (không ràng buộc); chữ thường có nghĩa là ràng buộc. –
Tôi phải đối mặt với cùng một lỗi tôi không thể hiểu từ tài liệu hướng dẫn làm thế nào để có được ví dụ của sigma.ml để làm việc. Làm thế nào để làm điều đó? –
@AlexanderSupertramp: Để thực hiện công việc ví dụ, vui lòng đủ điều kiện ** tất cả ** trường hợp 'enum'. Thay đổi 'Global' thành' Mode :: Global' và 'Local' thành' Mode :: Local'. Điều quan trọng là phải thay đổi ** tất cả ** lần xuất hiện. –