Gosub

지정된 라벨로 점프하여 Return을 만날 때까지 실행을 계속합니다.

Gosub, Label

매개변수

Label

점프해 갈 라벨, 핫키 라벨, 또는 핫스트링 라벨의 이름. 그 결과 Label 아래의 명령어들이 Return이나 Exit을 만날 때까지 실행됩니다. "Return"은 스크립트를 다시 Gosub 아래의 첫 명령어로 점프해서 거기에서 실행을 재개하게 만듭니다. "Exit"현재 쓰레드를 종료합니다.

논평

거의 모든 명령어의 매개변수와 마찬가지로, 라벨변수 참조일 수 있습니다. %MyLabel%와 같은 경우 변수에 저장된 이름이 목표로 사용됩니다. 그렇지만, 수행성능은 약간 줄어듭니다. 왜냐하면 목표 라벨을 스크립트가 처음 적재될 때 "한 번만 찾아 보는 것이 아니라" 매번 찾아 보아야 하기 때문입니다.

%MyLabel%와 같은 동적 라벨을 사용할 때, 라벨이 존재하지 않으면 에러 대화상자가 나타납니다. 이를 피하려면, 미리 IsLabel()을 호출하십시오. 예를 들어:

if IsLabel(VarContainingLabelName)
    Gosub %VarContainingLabelName%

Gosub가 간단하고 일반적인 목적의 서브루틴에는 유용하지만, 보다 복잡한 목적으로는 함수의 사용을 권장합니다.

Return, Functions, IsLabel(), Blocks, Loop, Goto, A_ThisLabel

예제

This example is executed as follows:

  1. Jump to the label named "Label1".
  2. Show the message "The Label1 subroutine is now running."
  3. Return to the line immediately after Gosub.
  4. Show the message "The Label1 subroutine has returned (it is finished)."
  5. End the auto-execute section.
Gosub, Label1 
MsgBox, Label1 서브루틴이 반환되었습니다 (종료됨).
return

Label1:
MsgBox, Label1 서브루틴이 지금 실행 중입니다.
return