Dart 程式設計中的詞法作用域


Dart 是一種詞法作用域語言。詞法作用域意味著隨著我們向下移動到最新變數宣告,變數值將取決於變數存在的內部作用域。

示例

考慮以下所示示例 −

 線上演示

void main(){
   var language = 'Dart';
   void printLanguage(){
      language = 'DartLang';
      print("Language is ${language}");
   }
   printLanguage();
}

在以上示例中,我們在 printLanguage() 函式的作用域內更改了 language 變數的值,由於我們在 printLanguage() 函式內列印值,內部作用域是同一程式碼塊內的作用域,因此我們將獲得 language = 'DartLang' 的值,而不是 language = 'Dart'。

輸出

Language is DartLang

示例

讓我們考慮另一個示例,複雜一些,以便更好地理解詞法作用域。

考慮以下所示示例 −

 線上演示

void main() {
   String language = "Dart";
   void outerFunction() {
      String level = 'one';
      String ex = "scope";
      void innerFunction() {
         Map level = {'count': "Two"};
         print('ex: $ex, level: $level');
         print('Language: $language');
      }
      innerFunction();
      print('ex: $ex, level: $level');
   }
   outerFunction();
}

以上示例有多個作用域,例如,我們在開始 main 函式後就有一個作用域,然後,在輸入 outerFunction() 後,另一個內部作用域開啟,當我們移動到 innerFunction() 的內部時,一個更大的作用域開啟。

輸出

ex: scope, level: {count: Two}
Language: Dart
ex: scope, level: one

更新於:2021-05-21

1K+ 瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始
廣告