<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 庫和可見性 1. import,part,library指令可以幫助創建一個模塊化的,可共享的代碼庫。庫不僅提供了API,還提供隱私單元:以下劃線(\_)開頭的標識符只對內部庫可見。每個Dartapp就是一個庫,即使它不使用庫指令。 2. 庫可以分布式使用包。見[Pub Package and Asset Manager](https://www.dartlang.org/tools/pub/)中有關pub(SDK中的一個包管理器)。 3. ***使用庫*** * 使用 import 來指定如何從一個庫命名空間用于其他庫的范圍。 * 例如,Dart Web應用一般采用這個庫 dart:html,可以這樣導入: ~~~ import 'dart:html'; ~~~ * 唯一需要 import 的參數是一個指向庫的 URI。對于內置庫,URI中具有特殊dart:scheme。對于其他庫,你可以使用文件系統路徑或package:scheme。包 package:scheme specifies libraries ,如pub工具提供的軟件包管理器庫。例如: ~~~ import 'dart:io'; import 'package:mylib/mylib.dart'; import 'package:utils/utils.dart'; ~~~ 4. ***指定庫前綴*** * 如果導入兩個庫是有沖突的標識符,那么你可以指定一個或兩個庫的前綴。例如,如果 library1 和 library2 都有一個元素類,那么你可能有這樣的代碼: ~~~ ``` import 'package:lib1/lib1.dart'; import 'package:lib2/lib2.dart' as lib2; // ... var element1 = new Element(); // 使用lib1里的元素 var element2 = new lib2.Element(); // 使用lib2里的元素 ``` ~~~ 5. ***導入部分庫*** * 如果想使用的庫一部分,你可以選擇性導入庫。例如: ~~~ // 只導入foo庫 import 'package:lib1/lib1.dart' show foo; //導入所有除了foo import 'package:lib2/lib2.dart' hide foo; ~~~ 6. ***延遲加載庫*** * 延遲(deferred)加載(也稱為延遲(lazy)加載)允許應用程序按需加載庫。下面是當你可能會使用延遲加載某些情況: * 為了減少應用程序的初始啟動時間; * 執行A / B測試-嘗試的算法的替代實施方式中; * 加載很少使用的功能,例如可選的屏幕和對話框。 * 為了延遲加載一個庫,你必須使用 deferred as 先導入它。 ~~~ import 'package:deferred/hello.dart' deferred as hello; ~~~ * 當需要庫時,使用該庫的調用標識符調用 LoadLibrary()。 ~~~ greet() async { await hello.loadLibrary(); hello.printGreeting(); } ~~~ * 在前面的代碼,在庫加載好之前,await關鍵字都是暫停執行的。有關 async 和 await 見 asynchrony support 的更多信息。 * 您可以在一個庫調用 LoadLibrary() 多次都沒有問題。該庫也只被加載一次。 * 當您使用延遲加載,請記住以下內容: * 延遲庫的常量在其作為導入文件時不是常量。記住,這些常量不存在,直到遲庫被加載完成。 * 你不能在導入文件中使用延遲庫常量的類型。相反,考慮將接口類型移到同時由延遲庫和導入文件導入的庫。 * Dart隱含調用LoadLibrary()插入到定義deferred as namespace。在調用LoadLibrary()函數返回一個Future。 7. ***庫的實現*** * 用 library 來來命名庫,用part來指定庫中的其他文件。 注意:不必在應用程序中(具有頂級main()函數的文件)使用library,但這樣做可以讓你在多個文件中執行應用程序。 8. ***聲明庫*** * 利用library identifier(庫標識符)指定當前庫的名稱: ~~~ // 聲明庫,名ballgame library ballgame; // 導入html庫 import 'dart:html'; // ...代碼從這里開始... ~~~ 9. ***關聯文件與庫*** * 添加實現文件,把part fileUri放在有庫的文件,其中fileURI是實現文件的路徑。然后在實現文件中,添加部分標識符(part of identifier),其中標識符是庫的名稱。下面的示例使用的一部分,在三個文件來實現部分庫。 * 第一個文件,ballgame.dart,聲明球賽庫,導入其他需要的庫,并指定ball.dart和util.dart是此庫的部分: ~~~ library ballgame; import 'dart:html'; // ...其他導入在這里... part 'ball.dart'; part 'util.dart'; // ...代碼從這里開始... ~~~ * 第二個文件ball.dart,實現了球賽庫的一部分: ~~~ part of ballgame; // ...代碼從這里開始... ~~~ * 第三個文件,util.dart,實現了球賽庫的其余部分: ~~~ part of ballgame; // ...Code goes here... ~~~ 10. ***重新導出庫(Re-exporting libraries)*** ~~~ * 可以通過重新導出部分庫或者全部庫來組合或重新打包庫。例如,你可能有實現為一組較小的庫集成為一個較大庫。或者你可以創建一個庫,提供了從另一個庫方法的子集。 ``` // In french.dart: library french; hello() => print('Bonjour!'); goodbye() => print('Au Revoir!'); // In togo.dart: library togo; import 'french.dart'; export 'french.dart' show hello; // In another .dart file: import 'togo.dart'; void main() { hello(); //print bonjour goodbye(); //FAIL } ``` ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看