2009-03-28 10 views
4

GoTo 레이블의 이름을 어떻게 지정합니까? 나는 드물게 자주 사용하므로 좋은 이름을 찾는 데 어려움을 겪고 있습니다. GoTo 레이블의 이름 지정 규칙

는 고전에서 '고토 악하고 코드 살아 토론 먹는'삼가 나는 종종 지옥을 사용하여 배치 파일에서

+0

이 정보가 사용하는 용도에 따라 달라지지 않습니까? 나는 * 모든 식별자를 그들이 사용 된 맥락에서 의미있는 것을 이름 짓고 이름 짓는 것을 선호한다. 물론, 당신이 그들을 사용하는 곳을 말하는 것은 당신이 솜씨있는 것 대신에 사용할 수있는 것에 대한 토론을 열어 줄 수 있습니다. 힘든 행운. :) – jalf

+0

나는 네이밍 규칙이 필요하다면 과용하는 것처럼 들린다. ;) – jalf

답변

5

내 레이블 이름은 거의 항상 이러한 패턴 중 하나에 해당 :

변경이 뭔가을 무효화했기 때문에 중첩 된 루프 세트를 다시 시작하기 위해, "다시 시작"호출
  • return 문 바로 앞에 "exit"또는 "return"이라고하며 디버깅을위한 반환 값을 기록하는 trace 문으로 인해 만 있습니다.
3

을하시기 바랍니다.

등 :

some_command || GOTO HELL 

... 

HELL: 

echo "Ouch, Hot!" 
2
  • "정리"가 일부와 previosly 할당 된 자원 (또는 '마지막'섹션 작업 비슷한 종류의) 보통
0

I를 자유롭게 앞에 설 경우 대체하는 부울 변수와 같은 이름을 가지고 2 가지 경우에만 필요합니다. 마찬가지로, 내 고토 레이블 시작 또는 마지막으로 중 하나입니다. 포트란에서

1

, 내가 롤백에 대한 고토를 사용하고, 나는 일반적으로 999 개 뒤쪽에서 시작

call foo(err) 
    if (err /= 0) goto 999 

    call bar(err) 
    if (err /= 0) goto 998 

    call baz(err) 
    if (err /= 0) goto 997 

    ! everything fine 
    error = 0 
    return 

997 call undo_bar() 
998 call undo_foo() 
999 error = 1 
    return 

가 나는 또한 내가 원하는 어떤 이유로 라벨에게보다 큰 1000 경우 사용 (포트란에서, 고토 레이블은 숫자에만 있습니다) 롤백 부분을 건너 뜁니다.

C 및 다른 언어에서는 rollbacknumber (예 : rollback1, rollback2)를 사용하므로 롤백 할 레이블에서 명확합니다. 이것은 기본적으로 goto를 사용하는 유일한 이유입니다.