<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之旅 廣告
                [TOC] import和library指令可以幫助您創建模塊化和可共享的代碼庫。庫不僅提供api,而且包含隱私部分:以下劃線(_)開頭的標識符僅在庫中可見。每個Dart應用程序都是一個庫,即使它不使用庫指令。 可以使用包來分發庫。有關Pub Package和Asset Manager的信息,請參見[Pub Package和Asset Manager], Pub是SDK中包含的包管理器。 ## 使用庫 使用import來指定如何在另一個庫的范圍中使用來自一個庫的命名空間。 例如,Dart web應用程序通常使用Dart:html庫,它們可以這樣導入: ~~~ import 'dart:html'; ~~~ 導入一個庫僅僅需要提供庫的URI。對于內置庫,URI具有特定的形式(dart:scheme)。對于其他庫,可以使用文件路徑或者包:scheme的形式。包:scheme形式指定包管理器(如pub工具)提供的庫。例如: ~~~ import 'package:test/test.dart'; ~~~ >注意:URI表示統一資源標識符。url(統一資源定位器)是一種常見的URI。 > ## 指定一個庫前綴 如果您導入兩個具有沖突標識符的庫,那么您可以為一個或兩個庫指定一個前綴。例如,如果library1和library2都有一個Element類,那么你可以用以下的方法: ~~~ import 'package:lib1/lib1.dart'; import 'package:lib2/lib2.dart' as lib2; // Uses Element from lib1. Element element1 = Element(); // Uses Element from lib2. lib2.Element element2 = lib2.Element(); ~~~ ## 只導入庫的一部分 如果您只想使用庫的一部分,您可以有選擇地導入庫。例如: ~~~ // Import only foo. import 'package:lib1/lib1.dart' show foo; // Import all names EXCEPT foo. import 'package:lib2/lib2.dart' hide foo; ~~~ ## 懶加載庫 延遲加載(也稱為懶加載)允許應用程序在需要時按需加載庫。以下是一些您可能使用延遲加載的情況: * 減少應用程序的初始啟動時間。 * 例如,要執行A/B測試——嘗試算法的其他實現。 * 加載很少使用的功能,如可選屏幕和對話框。 要延遲加載庫,必須首先使用deferred as進行導入。 ~~~ import 'package:greetings/hello.dart' deferred as hello; ~~~ 當您需要庫時,使用庫的標識符調用loadLibrary()。 ~~~ Future greet() async { await hello.loadLibrary(); hello.printGreeting(); } ~~~ 在前面的代碼中,wait關鍵字暫停執行,直到加載庫。有關async和waiting的更多信息,請參見[異步支持]。 您可以在庫上多次調用loadLibrary(),沒有問題。該庫只加載一次。 在使用延遲加載時,請記住以下幾點: * 在導入文件中,遞延庫的常量不是常量。記住,這些常量在延遲庫加載之前是不存在的。 * 您不能在導入文件中使用來自延遲庫的類型。相反,考慮將接口類型移動到由延遲庫和導入文件導入的庫。 * Dart隱式地將loadLibrary()插入到您定義使用deferred作為名稱空間的名稱空間中。函數的作用是:返回一個未來。 >Dart VM差異:由于問題#33118,Dart VM甚至在調用loadLibrary()之前就允許訪問遞延庫的成員。我們希望這個bug能夠很快得到修復,所以不要依賴于當前的VM行為。 > ## 庫的實現 有關如何實現庫包的建議,請參閱[創建庫包],包括: * 如何組織庫的代碼。 * 如何使用export指令。 * 何時使用part指令。
                  <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>

                              哎呀哎呀视频在线观看