Kiểu foo(a => 1, b => 2)
là cách thông thường để mô phỏng đối số được đặt tên. bar({a => 1, b => 2})
thường chỉ được sử dụng cho các đối số bổ sung (và có thể tùy chọn).
Để sử dụng thông thường, tôi thích biểu mẫu đầu tiên. Các {}
được đánh máy thêm, thêm tiếng ồn để đọc, và tạo ra một lỗi có thể nếu bạn để lại một hoặc cả hai niềng răng. Bất kỳ sự khác biệt hiệu suất là không đáng kể. (Nếu không, bạn có vấn đề lớn hơn.) Mặt khác, gói các đối số trong một hàm tạo băm vô danh có thể giúp bạn tìm lỗi tại thời gian biên dịch thay vì thời gian chạy.
Biểu mẫu thứ hai thường được kết hợp với các đối số vị trí. ví dụ.Benchmark thực hiện điều này:
cmpthese(10000, {
foo => \&foo,
bar => \&bar,
});
Trong khi Tk rời {}
ra:
my $text = $w->Scrolled('Text', -width => 80, -height => 50);
Nó thường là một sự lựa chọn phong cách.
Nguồn
2010-07-30 13:37:14
+1 để chỉ ra các khía cạnh hiệu suất. –
Những "khía cạnh hiệu suất" là tối ưu hóa vi mô không cần thiết mà không mang lại lợi ích thiết thực. Một băm có thể được sử dụng dễ dàng như một danh sách: 'foo (% hash)' hoặc một hashref: 'foo (% {$ hashref})'. Gắn bó với phong cách foo để lại nhiều sức mạnh hơn cho người dùng. – jmz
Trên thực tế, điểm chuẩn của riêng tôi đã được hiển thị (trên nhiều cài đặt) mà nó nhanh hơn để chuyển danh sách so với tham chiếu - mặc dù nó xuất hiện nhanh hơn để tham chiếu * return *. – Axeman