현재 테스트 첫 번째 프로그래밍을 수행 중이며 http://testfirst.org/live/learn_ruby/performance_monitor에있는 06_performance 모니터 문제에 봉착했습니다. stackoverflow에서 비슷한 스레드가 발견되었지만 여전히 문제를 이해하지 못하고 있습니다. 나는 여러 블록의 평균 실행 시간을 찾는 마지막 두 테스트에 실패했습니다. 지금까지의 코드는 다음과 같습니다.블록의 평균 실행 시간을 찾는 데 문제가 있습니다.
def measure(i=1)
if i>1
i.times do
yield
end
else
x = Time.now
yield
elapsed_time = Time.now - x
end
end
테스트가 뭘 하려는지 매우 혼란 스럽습니다. 지금까지 이것이 내가해야 할 일이라고 생각합니다 :
나는이 작업이 특정 블록의 실행 시간을 찾는 것이라고 생각합니다. 그러나이 코드가 처음 몇 가지 테스트에서 왜 작동하는지 정확히 알지 못합니다. 또한 항복 진술서가 정확히 무엇을 반환 하는지를 아는 데 문제가 있습니다. 누군가가이 문제를 해결하는 과정을 거쳐서 해결책을 이해할 수 있다면 정말 고마워 할 것입니다. 단지 yield
를 호출 기능적으로 동일 { 1.times { yield }
- 당신이 i == 1
i > 1
에서 밖으로 분기 할 필요가 없습니다 제외
배열에 런타임을 저장하는 것에 대한 설명은 실제로 해결책을 알려주었습니다. 고맙습니다. –