Tôi thấy rằng tôi thường xuyên viết một hàm mà tôi luôn gọi là "clamp()
", đó là loại kết hợp của min()
và max()
. Có một tiêu chuẩn, "kinh điển" tên cho chức năng này?Có tên "chuẩn" cho hàm kết hợp min() và max() không?
Nó luôn luôn trông giống như sau:
function clamp($val, $lower, $upper)
{
if ($val < $lower)
return $lower;
else if ($val > $upper)
return $upper;
else
return $val;
}
Hoặc đơn giản là sử dụng built-in min()
và max()
chức năng:
function clamp($val, $lower, $upper)
{
return max($lower, min($upper, $val));
}
Biến thể tồn tại: Bạn cũng có thể kiểm tra đầu vào không hợp lệ, nơi lower > upper
, và ném một ngoại lệ hoặc đảo ngược đầu vào. Hoặc bạn có thể bỏ qua thứ tự của các đầu vào và gọi nó là hàm trung bình-ba, nhưng điều đó có thể gây nhầm lẫn.
Tôi muốn tránh cho các tham số của bạn có cùng tên với các hàm được sử dụng, đặc biệt khi chúng không được sử dụng trong các cặp phù hợp (ví dụ: $ min được sử dụng với max() và ngược lại). Có lẽ là $ lower và $ upper, thay vào đó. –
@ BenBlank: ý tưởng hay. chỉnh sửa các câu hỏi – Kip
Tôi sử dụng tên InRange() nhưng bình luận của tôi không phải là về tên, nó là về thứ tự của các tham số. Tôi tìm thấy nó dễ dàng hơn để đọc: InRange (min, giá trị, tối đa) hơn (giá trị, min, max) –