【发布时间】:2014-04-30 22:57:40
【问题描述】:
我发现我经常最终编写一个我总是称之为“clamp()”的函数,它是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:好主意。编辑了问题
-
我使用名称 InRange() 但我的评论不是关于名称,而是关于参数的顺序。我发现它更容易阅读:InRange(min,value,max) 比 (value,min,max)
标签: language-agnostic standards nomenclature