Я нахожу, что часто получаю функцию, которую я всегда называю «clamp()
», это своего рода сочетание min()
и max()
. Существует ли стандартное «каноническое» имя для этой функции?Существует ли «каноническое» имя для функции, объединяющей min() и max()?
Это всегда выглядит примерно так:
function clamp($val, $lower, $upper)
{
if ($val < $lower)
return $lower;
else if ($val > $upper)
return $upper;
else
return $val;
}
Или просто с помощью встроенного в min()
и max()
функции:
function clamp($val, $lower, $upper)
{
return max($lower, min($upper, $val));
}
существуют
Варианты: Вы можете также проверить наличие недопустимого ввода, где lower > upper
, и либо бросать исключение, либо отменить входы. Или вы можете игнорировать порядок входов и называть его медианой из трех функций, но это может ввести в заблуждение.
Я бы не дал вашим параметрам те же имена, что и используемые функции, особенно если они не используются в совпадающих парах (т. Е. Используется $ min с max() и наоборот). Возможно, вместо этого $ lower и $ upper. –
@BenBlank: хорошая идея. отредактировал вопрос – Kip
Я использую имя InRange(), но мой комментарий касается не имени, а порядка упорядочения параметров. Мне легче читать: InRange (мин, значение, макс.), Чем (значение, мин., Макс.) –