tcl에서 GOTO를 구현하는 방법을 알고 싶었습니다. 5 단계를 말한 테스트 사례를 작성 중입니다. 제 1 단계가 실패하면 더 이상 진행하고 싶지 않고 기존 작업을 건너 뛰고 일반적인 정리 섹션으로 이동하려고합니다.tcl에서 goto를 구현하는 방법
tcl에 GOTO 명령이 있으면 도와주세요.
감사합니다. Ramya.
tcl에서 GOTO를 구현하는 방법을 알고 싶었습니다. 5 단계를 말한 테스트 사례를 작성 중입니다. 제 1 단계가 실패하면 더 이상 진행하고 싶지 않고 기존 작업을 건너 뛰고 일반적인 정리 섹션으로 이동하려고합니다.tcl에서 goto를 구현하는 방법
tcl에 GOTO 명령이 있으면 도와주세요.
감사합니다. Ramya.
Tcl에 이없고goto
이 있으며 비교적 기술적 인 이유로 구현하기가 불가능합니다.
하지만 다른 방법으로 당신이 할 수 있습니다. 테스트 사례를 다루고 있으므로 작업에 tcltest
패키지를 사용하시기 바랍니다. 그것으로, 당신은 아주 쉽게 정리 코드를 지정할 수 있습니다
tcltest::test test-1.1 "verify that the foo works" -setup {
allocate some resources
} -body {
whatever to do the test...
return [our results]
} -cleanup {
drop those resources
make sure that we are nice and clean
} -result "the expected test result"
당신은 단지
return
을 수행하여 쉽게 테스트의 몸에서 건너 뛸 수 있습니다
; tcltest::test
명령은이를 감지하여 그 결과로 처리합니다. 그러나 일반적으로 각 테스트를 다른 테스트와 독립적으로 유지하는 것이 좋습니다. 테스트가 실패 할 때 잘못된 점을 추적하는 것이 훨씬 쉬워집니다.
tcltest
을 사용하지 않는 경우에도 return
을 사용하여 일찍 건너 뛸 수있는 곳으로 리팩터링하는 것이 가장 좋습니다. 당신은 쉽게 일 수 있도록하는 try…finally…
(하나 기본적으로는 Tcl 8.6에서, 또는 this code on the Tcler's Wiki와)과 그 결합 할 수 있습니다 :
proc doThings {} {
try {
# do thing-1
if {$no_more} return
# do thing-2
if {$no_more} return
# do thing-3
if {$no_more} return
# do thing-4
if {$no_more} return
# do thing-5
} finally {
# do cleanup
}
}
정말 블록'goto'이 잘 제표의 표시를 얻기 위해 매우 어려운 것입니다 문제를 - 우리 동안 예외가 거품을 내뿜는 블록의 레이블을 처리 할 수 있습니다. 현재 실행 컨텍스트에 있지 않은 하위 블록의 레이블은 보이지 않습니다.이 레이블이 없으면 실제로 아무데도 갈 수 없습니다. 내장 명령에 특수한 경우를 추가 할 수 있지만 언어의 정신에 반하는 것은 가능합니다. 다른 높은 수준의 구문 구조가 가능하기 때문에 'goto'가 없다는 것이 실제로별로 느껴지지 않습니다. –
또는 [TAL] (http://wiki.tcl.tk/28070)을 사용하여 글을 쓸 수도 있지만, 그것은 희미한 마음이 아닙니다! –