지정된 라벨로 점프하여 Return을 만날 때까지 실행을 계속합니다.
Gosub, 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:
Gosub, Label1 MsgBox, Label1 서브루틴이 반환되었습니다 (종료됨). return Label1: MsgBox, Label1 서브루틴이 지금 실행 중입니다. return