Với biến số Dynamic
, nó có thể tận dụng lợi thế của các loại lớp của biến nội bộ mà không có điều kiện về loại chính xác? Ví dụ, giả sử tôi muốn viết một hàm prettyShow
. Nếu kiểu nội bộ là một thể hiện của Show
, thì chúng ta nên sử dụng cá thể đó; nếu không, chúng ta nên sử dụng cá thể của lớp Dynamic
. Trong mã, điều này có thể trông giống như:Kết hợp dữ liệu.Dạng động và loại
prettyShow :: Dynamic -> String
prettyShow x = case fromDynamic x :: (forall a. Show a => Maybe a) of
Nothing -> show x
Just y -> show y
Chỉnh sửa: Vì dường như điều này không thể thực hiện trực tiếp, một số giải pháp tốt có thể thực hiện được là gì?
Tóm lại, không. Tôi rất thích thông tin này để có sẵn, nhưng thông tin về lớp học bị mất và chỉ còn lại một bản thu nhỏ sau khi biên soạn. –
Nhưng chắc chắn có thể có một bảng lớn trong bộ nhớ ở đâu đó liên kết từng typerep với các từ điển lớp học của nó. –
... nhưng không có. –