라벨
라벨 (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_1과 run_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)
라벨은 Continue 및 Break 문장이 적용될 루프를 식별하는 데에도 사용될 수 있어요. 이것은 스크립트가 얼마든지 중첩된 루프를 쉽게 계속하거나 빠져 나갈 수 있게 해줘요.
관련 항목 (Related)
Functions(함수), IsLabel, Goto, Break, Continue