Tại sao điều này hoạt động tốt?Sử dụng các công đoàn mở bên ngoài mô-đun được xác định trong
module Account = struct
type account_type = Current of float | Savings of float
end
let sarah = Account.Current 100.0;;
Trong khi dòng cuối cùng sau đây tạo ra Error: syntax error
?
module Account = struct
type 'a account_type = [> `Current of float | `Savings of float ] as 'a
end
let pete = Account.`Current 100.0;;
Đó là lý do tại sao tôi không thể sử dụng loại công đoàn mở bên ngoài mô-đun mà không cần mở mô-đun? Tôi nên nói rằng tôi đã phát hiện ra rằng việc thay đổi dòng cuối cùng để:
open Account;;
let pete = `Current 100.0;;
hoạt động tốt, nhưng rõ ràng đây là rườm rà nếu tôi sử dụng account_type
rất nhiều, hoặc cách khác, tôi phải mở Account
khi bắt đầu bất kỳ mã trong đó account_type
được sử dụng, có nghĩa là tôi hy sinh sự trừu tượng mà tôi nhận được bằng cách sử dụng chữ ký cho Account
Tôi đã rà soát thông qua một số hướng dẫn OCaml cũng như tài liệu INRIA và tôi không thể tìm thấy bất kỳ đề cập nào về làm thế nào bạn làm điều này.
Có thể tránh phải mở mô-đun mỗi lần tôi muốn sử dụng account_type
không?
Cảm ơn trước,
Zach
Ah, tôi đã cố gắng thoát khỏi backtick với một backtick, do đó gây ra tấn nhầm lẫn cho tất cả mọi người tham gia. – nlucaroni