[ruby] 임의의 부울 값을 반환하는 가장 좋은 방법

나는 가짜 시드 데이터를 만들 true거나 반환하기 위해 얼마 동안 이것을 사용했습니다 false. 누군가가 중 반환의 더 나은, 더 간결 또는 자세한 방법이 있는지 궁금해 true또는 false.

rand(2) == 1 ? true : false



답변

Array # sample을 사용하는 선언적 스 니펫 :

random_boolean = [true, false].sample


답변

삼항 연산자를 제거하는 것은 어떻습니까?

rand(2) == 1


답변

나는 사용하고 싶다 rand:

rand < 0.5

편집 :이 답변은 읽기에 사용 rand > 0.5되었지만 rand < 0.5기술적으로 더 정확합니다. 반 개방 범위 [0,1) rand의 결과를 반환 하므로를 사용 하면 반 개방 범위 [0,0.5) 및 [0.5,1)의 동일한 확률이 발생합니다. 를 사용 하면 닫힌 범위 [0,0.5]와 열린 범위 (.5,1)의 UNEQUAL 확률이 발생합니다.<>


답변

나는 보통 다음과 같은 것을 사용합니다.

rand(2) > 0

Integer를 확장하여 to_boolean 메서드를 만들 수도 있습니다.

class Integer
  def to_boolean
    !self.zero?
  end
end


답변