import Data.List
- Tôi hiểu điều đó.'Đủ điều kiện' có nghĩa là gì trong câu lệnh 'Nhập dữ liệu đủ điều kiện.List' đủ điều kiện?
Nhưng qualified
có nghĩa là gì trong câu hỏi import qualified Data.List
?
import Data.List
- Tôi hiểu điều đó.'Đủ điều kiện' có nghĩa là gì trong câu lệnh 'Nhập dữ liệu đủ điều kiện.List' đủ điều kiện?
Nhưng qualified
có nghĩa là gì trong câu hỏi import qualified Data.List
?
Nhập đủ điều kiện làm cho các thực thể được nhập chỉ có sẵn ở dạng đủ điều kiện, ví dụ:
import qualified Data.List
result :: [Int]
result = Data.List.sort [3,1,2,4]
Chỉ với import Data.List
, thực thể có sẵn ở dạng đủ điều kiện và ở dạng không đủ tiêu chuẩn. Thông thường, chỉ cần làm một nhập khẩu có trình độ dẫn đến tên quá dài, vì vậy bạn
import qualified Data.List as L
result :: [Int]
result = L.sort [3,1,2,4]
Một nhập khẩu đủ tiêu chuẩn cho phép sử dụng các hàm có cùng tên được nhập khẩu từ một số module, ví dụ map
từ Prelude
và map
từ Data.Map
.
Từ khóa qualified
có nghĩa là các biểu tượng trong các mô-đun đã nhập không được nhập vào không gian tên không đủ điều kiện (không có tiền tố). Họ chỉ có sẵn với tên đầy đủ của họ. Ví dụ: foldr'
có tên không đủ điều kiện foldr'
và tên đủ điều kiện Data.List.foldr'
.
Một loại sử dụng nhập khẩu đủ điều kiện để ngăn chặn ô nhiễm không gian tên. Bạn cũng có thể sử dụng import qualified Foo as Bar
, nhập từ Foo
nhưng có tên như thể nhập có xuất xứ từ Bar
. Ví dụ: nếu bạn nhập import qualified Data.List as L
, bạn có thể sử dụng foldr'
làm L.foldr'
.
Nếu bạn nhập không đủ tiêu chuẩn (mặc định), bạn có thể tham khảo bất kỳ thứ gì được nhập chỉ bằng tên của nó.
Nếu bạn nhập đủ điều kiện, bạn phải đặt tiền tố tên với mô đun được nhập từ đó.
Ví dụ:
import Data.List (sort)
Đây là một khẩu không đủ tiêu chuẩn. Giờ đây, bạn có thể nói sort
hoặc Data.List.sort
.
import qualified Data.List (sort)
Đây là loại nhập đủ điều kiện. Bây giờ sort
của chính nó không hoạt động, và bạn phải nói Data.List.sort
.
Bởi vì đó là khá dài, thông thường bạn nói điều gì đó như
import qualified Data.List (sort) as LS
và bây giờ bạn có thể viết LS.sort
, đó là ngắn hơn.