是否有一个“规范”名称的功能结合MIN()和MAX()?
-
21-08-2019 - |
题
我发现我经常写出来的功能,我总是称之为“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
,并且或者抛出异常或反向器的输入。或者你可以忽略的输入顺序,并把它称为中位数的三个功能,但可能会造成混淆。
解决方案
<强>钳强>是一个很好的名称。
让我们把它的标准。
其他提示
在某些语言你有功能限制
NUM =极限(VAL,最小,最大)
clip(val, lo, hi)
我们在这里使用pin
。事实上,我们使用pin
简单范围和clamp
为其他的东西。
我刚刚去一个函数名“rangeCheck”
中值
由于它推广到更多的值。
你觉得什么东西例如 InRangeClosestTo (数量,RangeLowerBound,RangeUpperBound)或 ClosestInRange (数量,LowerBoundOfRange,UpperBoundOfRange)?他们的意思是“给我最接近数范围的元素”,因为我希望是显而易见的。
在概念比呀具有两面性,但是没有更多,或限制或约束,且可能不希望返回任何东西,如果数量不是范围内的钳更精确,
要我,他们也更清晰,然后我看到了休息;虽然它可能需要几秒钟去了解他们,你只需要推理的名字,并且在多数有在确认注释简单介绍一下;它很不错,当你看到如何准确它(它是精确的,对吧?)。
您可能只对范围是否包含或不怀疑,但我想大多数人都会正确假设它的包容。或者您可以使用InInclRangeClosestTo和InExclRangeClosestTo,althought我没有看到有很多用途的专用范围。
当然,你应该有一个自动完成的IDE,如果你想使用它们。