2016-09-14 22 views
5

Chỉ cần tham gia một peek vào mã elm và đã xem qua các định nghĩa loại sau đây:Elm kiểu đệ quy định nghĩa

type Cmd msg = Cmd 

Tôi chỉ dường như không thể hiểu được cách làm việc này. Ai cũng có thể giải thích?

Trả lời

10

Đó không phải là định nghĩa kiểu đệ quy, nó xác định loại Cmd làm loại liên kết với một nhãn, Cmd, không chứa thông tin bổ sung. Thông thường các định nghĩa như thế này được dự định để báo hiệu rằng loại đại diện cho các giá trị không có ý nghĩa riêng lẻ trong elm.

Trong trường hợp này, loại được xác định theo cách đó bởi vì tất cả các hoạt động trên Cmd được ẩn trong mã nền tảng, do đó không cần người dùng có thể kiểm tra hoặc hủy cấu trúc giá trị Cmd. Cmd cần để lộ một biến kiểu để bảo vệ an toàn kiểu của các giá trị Cmd, bởi vì chúng đóng gói một lời hứa để đưa ra một thông điệp của một loại nhất định và loại đó có thể được thay đổi thông qua Cmd.map.

Các vấn đề liên quan