Me parece que con frecuencia termino escribiendo una función que siempre llamo "clamp()
", que es una especie de combinación de min()
y max()
. ¿Hay un nombre "canónico" estándar para esta función?¿Hay un nombre "canónico" para una función que combine min() y max()?
siempre se ve algo como esto:
function clamp($val, $lower, $upper)
{
if ($val < $lower)
return $lower;
else if ($val > $upper)
return $upper;
else
return $val;
}
O simplemente utilizando una función de min()
y max()
funciones:
function clamp($val, $lower, $upper)
{
return max($lower, min($upper, $val));
}
existen
Variaciones: También puede comprobar si hay una entrada no válida, donde lower > upper
, y arrojar una excepción o invertir las entradas. O puede ignorar el orden de las entradas y llamarlo una función de la mediana de tres, pero eso puede ser confuso.
Evitaría dar a sus parámetros los mismos nombres que las funciones utilizadas, particularmente porque no se usan en pares coincidentes (es decir, $ min se usa con max() y viceversa). Tal vez $ más bajo y $ superior, en cambio. –
@BenBlank: buena idea. editó la pregunta – Kip
Utilizo el nombre InRange() pero mi comentario no es sobre el nombre, se trata del orden de los parámetros. Me resulta más fácil de leer: InRange (min, value, max) than (value, min, max) –