Perl có kiểu liệt kê tuân thủ các phương pháp hay nhất hoặc quan trọng hơn không, liệu nó có cần một loại không?Liệu Perl có một kiểu liệt kê?
Dự án tôi đang sử dụng một chuỗi sử dụng khắp nơi để biểu thị những thứ thường sử dụng Enum bằng ngôn ngữ như C#. Ví dụ, chúng ta có một tập hợp các số điện thoại trong một mảng băm, mỗi liên kết với một loại điện thoại ("Home", "làm việc", "di động", vv):
$phone_number->{type} = 'Home';
Nó sẽ là đủ thế nào để sử dụng một tập chỉ đọc các biến ở đây hoặc nên một Enum được sử dụng? Tôi đã tìm thấy một enum
module on CPAN nhưng nó xuất hiện để sử dụng các từ trống vi phạm một trong các Perl Best Practices. Suy nghĩ của tôi về việc sử dụng read-only variables đi một cái gì đó như thế này:
use Readonly;
Readonly my $HOME => 'Home';
Readonly my $WORK => 'Work';
Readonly my $MOBILE => 'Mobile';
$phone_number->{type} = $HOME;
Đây có phải là một cách tiếp cận tốt hay là có một cách tốt hơn?
Đối với độ nghiêm ngặt, có sub HOME() {'home'} được tạo ra sau cảnh. –
Khi bạn có một chương trình con có trong Điện thoại :: Loại enum làm đối số, làm thế nào để bạn thực hiện kiểm tra động trên đối số chương trình con là Điện thoại :: Loại kiểu enum, không phải chuỗi, không phải số ... –
Chỉ cần làm rõ sub HOME () {'home'} và sử dụng hằng số { HOME => 'Trang chủ', WORK => 'Cơ quan', MOBILE => 'Di động', }; giống nhau không? sau này tạo ra (đằng sau hậu trường) mã? –