5.1 블록(Blocks)
5.1 블록(Blocks)
Haxe의 블록은 여는 중괄호 {로 시작하고 닫는 중괄호 }로 끝나요. 블록은 여러 표현식을 포함할 수 있으며, 각 표현식 뒤에는 세미콜론 ;이 옵니다. 일반 구문은 다음과 같습니다:
{
expr1;
expr2;
// ...
exprN;
}
블록 표현식의 값과 그에 따른 타입은 마지막 하위 표현식의 값과 타입과 동일해요.
블록은 var 표현식으로 선언된 지역 변수와 function 표현식으로 선언된 지역 함수를 포함할 수 있어요. 이들은 블록 안과 하위 블록 안에서는 사용 가능하지만, 블록 밖에서는 사용할 수 없습니다. 또한 선언 이후에만 사용할 수 있어요. 다음 예제는 var를 사용하지만 function 사용에도 같은 규칙이 적용됩니다:
{
a; // error, `a` is not declared yet
var a = 1; // declare `a`
a; // ok, `a` was declared
{
a; // ok, `a` is available in sub-blocks
}
// ok, `a` is still available after
// sub-blocks
a;
}
a; // error, `a` is not available outside
런타임에 블록은 위에서 아래로 평가됩니다. 제어 흐름(예: 예외(exceptions)나 return 표현식)이 블록을 일찍 떠날 수 있고 이후 표현식이 평가되지 않게 할 수 있어요.
출처: Blocks
본문
블록 구문
블록은 {와 } 사이에 세미콜론으로 구분된 여러 표현식을 담아요. 블록의 값/타입은 마지막 표현식의 그것과 같습니다.
스코프
var/function으로 선언된 지역 변수와 함수는 블록과 하위 블록 안에서만 선언 후에 사용할 수 있고, 블록 밖에서는 접근할 수 없어요. 하위 블록은 상위 블록의 변수에 접근할 수 있습니다.
실행 순서
블록은 위에서 아래로 평가됩니다. 예외나 return은 블록을 일찍 떠날 수 있어요.