Uważam, że często kończę pisanie funkcji, którą zawsze nazywam "clamp()
", która jest rodzajem kombinacji min()
i max()
. Czy istnieje standardowa "kanoniczna" nazwa tej funkcji?Czy istnieje "kanoniczna" nazwa funkcji łączącej min() i max()?
To zawsze wygląda mniej więcej tak:
function clamp($val, $lower, $upper)
{
if ($val < $lower)
return $lower;
else if ($val > $upper)
return $upper;
else
return $val;
}
lub po prostu za pomocą wbudowanego w min()
i max()
funkcji:
function clamp($val, $lower, $upper)
{
return max($lower, min($upper, $val));
}
Wariacje istnieć: Można również sprawdzić nieprawidłowych danych wejściowych, gdzie lower > upper
, i albo wyrzuć wyjątek, albo odwróć dane wejściowe. Lub możesz zignorować kolejność wejść i nazwać ją funkcją mediany-trzech, ale to może być mylące.
Unikałbym podawania parametrów o takich samych nazwach jak używane funkcje, szczególnie, że nie są używane w pasujących parach (tj. Min $ jest używane z max() i na odwrót). Być może zamiast tego dolny i dolny. –
@BenBlank: dobry pomysł. edytował pytanie – Kip
Używam nazwy InRange(), ale mój komentarz nie jest o nazwie, chodzi o porządkowanie parametrów. Łatwiej mi odczytać: InRange (min, value, max) than (value, min, max) –