문제

나는 종종 내가 항상 부르는 함수를 쓰는 것을 자주한다는 것을 알게된다.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, Min, Max)

clip(val, lo, hi)

우리는 사용 pin 여기. 실제로, 우리는 사용합니다 pin 간단한 범위와 clamp 다른 것들을 위해.

나는 단지 기능 이름 "rangecheck"로 갈 것입니다

중앙값

더 많은 가치로 일반화되기 때문입니다.

는 어때 경계?

bound(min, val, max)

또는 억누르다?

constrain(val, min, max)

당신은 어떤 것들에 대해 어떻게 생각하십니까? inrangeclosestto(번호, rangelowerbound, RangeUpperBound), 또는 CloseStinrange(숫자, LowerBoundOfRange, ToperBoundOfRange)? 그들은 '내가 숫자에 가장 가까운 범위의 요소를 얻는다'는 것을 의미합니다.

이 개념은 yeah가 양면을 가지고 있지만 숫자가 범위 내에 있지 않으면 아무것도 반환하고 싶지 않은 한계 또는 경계가있는 클램프보다 정확합니다.

나에게 그들은 내가 본 나머지보다 명확하다. 그것들을 이해하는 데 몇 초가 걸릴 수 있지만, 당신은 그 이름에 대해 추론하면되며, 확인에 대한 의견을 간략하게 살펴 봅니다. 그리고 그것이 얼마나 정확한지 알면 좋습니다 (정확합니다.).

범위가 포괄적인지 아닌지에 대해서만 의문을 가질 수는 있지만 대부분의 사람들은 그것이 포용 적이라고 생각할 것이라고 생각합니다. 또는 ININCLRANGECLOSESTTO 및 EMPCLRANGECLOSESTTO를 사용할 수 있습니다. 독점 범위에 많은 용도가 보이지 않습니다.

물론 사용하려면 자동 완성 IDE가 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top