Lexical scope

Dart는 어휘적으로 범위가 지정된 언어입니다. 이는 코드의 레이아웃만으로 변수의 범위가 정적으로 결정된다는 것을 의미합니다. 중괄호를 바깥쪽으로 따라가면 변수가 범위 내에 있는지 확인할 수 있습니다.

다음은 각 범위 수준에서 변수가 있는 중첩된 함수의 예입니다.

bool topLevel = true;

void main() {
  var insideMain = true;

  void myFunction() {
    var insideFunction = true;

    void nestedFunction() {
      var insideNestedFunction = true;

      assert(topLevel);
      assert(insideMain);
      assert(insideFunction);
      assert(insideNestedFunction);
    }
  }
}

중첩된 함수인 nestedFunction()이 최상위 수준까지 모든 수준의 변수를 사용할 수 있는 것에 주목하세요.

Last updated