라벨

라벨 (Labels)

AutoHotkey의 라벨(label)이 무엇이고, 문법, 동작 방식, 그리고 루프와의 연관성을 설명하는 문서예요.

출처: 문서

본문

목차 (Table of Contents)

  • 문법과 사용법
  • 비슷해 보이는 것들 (Look-alikes)
  • 동적 라벨 (Dynamic Labels)
  • 이름 있는 루프 (Named Loops)
  • 관련 항목 (Related)

문법과 사용법 (Syntax and Usage)

라벨은 코드 한 줄을 식별하며, Goto의 대상이 되거나, 빠져 나가거나 계속할 루프를 지정하는 데 사용될 수 있어요. 라벨은 이름 뒤에 콜론이 붙는 형태예요:

this_is_a_label:

공백과 주석을 제외하고, 라벨과 같은 줄에는 다른 코드를 쓸 수 없어요.

이름 (Names): 라벨 이름은(ASCII 문자에 대해) 대소문자를 구분하지 않으며, 문자, 숫자, 밑줄 및 비ASCII 문자로 구성될 수 있어요. 예: MyListView, Menu_File_Open, 그리고 outer_loop.

범위 (Scope): 각 함수는 고유한 지역 라벨 목록을 가져요. 함수 내부에서는 그 함수의 라벨만 스크립트에 보이고 접근할 수 있어요.

대상 (Target): 라벨의 대상은 다음 실행 가능한 코드 줄이에요. 실행 가능한 코드에는 함수, 할당, 표현식 및 블록이 포함되지만, 지시문(directive), 라벨, 핫키 또는 핫스트링은 포함되지 않아요. 다음 예시에서 run_notepad_1run_notepad_2는 둘 다 Run 줄을 가리켜요:

run_notepad_1:
run_notepad_2:
    Run "notepad"
    return

실행 (Execution): 지시문처럼, 라벨은 정상 실행 중에 도달하더라도 아무 효과가 없어요.

비슷해 보이는 것들 (Look-alikes)

핫키와 핫스트링 정의는 라벨과 비슷해 보이지만 라벨이 아니에요.

핫키는 핫키 뒤에 이중 콜론이 붙는 형태예요.

^a::

핫스트링은 콜론, 0개 이상의 옵션, 또 하나의 콜론, 약어(abbreviation), 그리고 이중 콜론으로 구성돼요.

:*:btw::

동적 라벨 (Dynamic Labels)

어떤 경우에는 라벨 이름 대신 변수를 사용할 수 있어요. 그런 경우에는 변수에 저장된 이름으로 대상 라벨을 찾아요. 다만, 대상 라벨을 스크립트가 처음 로드될 때 한 번만이 아니라 매번 "조회(looked up)"해야 하므로 성능이 약간 떨어져요.

이름 있는 루프 (Named Loops)

라벨은 ContinueBreak 문장이 적용될 루프를 식별하는 데에도 사용될 수 있어요. 이것은 스크립트가 얼마든지 중첩된 루프를 쉽게 계속하거나 빠져 나갈 수 있게 해줘요.

Functions(함수), IsLabel, Goto, Break, Continue

더 알아보기 (Learn more)