본문으로 건너뛰기

변수

  • 할당하면 변수가 만들어집니다. total = 0; 선언 키워드나 형식 주석은 없습니다.
  • 변수는 소스 텍스트에서 처음 사용하는 위치보다 위의 어딘가에서 할당되어야 합니다. 그렇지 않으면 스크립트가 컴파일되지 않습니다(정의되지 않은 변수). 이는 실제로 실행되는 내용이 아니라 텍스트상의 위치로 검사됩니다.
  • 따라서 if 분기 안에서만 할당된 변수도 if 뒤에서 사용하면 컴파일됩니다. 해당 분기가 실행되지 않았다면 변수는 Integer 0 값을 가집니다.
  • 스크립트마다 범위는 하나입니다. { } 블록은 새 범위를 만들지 않습니다. 루프 카운터는 루프가 끝난 뒤에도 최종 값을 가진 채 남아 있으며, 블록 안에서 이름에 할당하면 어디서나 같은 변수가 바뀝니다.
  • 변수는 스크립트가 한 번 실행되는 동안만 존재합니다. 디스패치할 때마다 변수 없이 시작하며, 동시에 실행되는 두 작업은 서로의 변수를 볼 수 없습니다. 실행 간에 값을 유지하려면 Storage를 사용하십시오.
  • 변수는 기본 제공 함수와 같은 이름을 가질 수 있습니다. x와 x(…)는 괄호로 구분되지만, 기본 제공 함수의 이름을 재사용하는 것은 권장하지 않습니다.
if (MouseGetCursorX() > 500) {
side = "right";
}
UtilityPrint(StringFormat("side = {0}", side, "")); // 컴파일됩니다. 분기가 실행되지 않았으면 "side = 0"을 출력합니다

for (i = 0; i < 3; i = i + 1) { }
UtilityPrint(StringFormat("i after loop = {0}", i, "")); // 3 -- 블록 범위 없음