<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                雖然 Haxe 有一個靜態的類型系統,但這個類型系統實際上可以通過使用 Dynamic 類型關閉。一個 動態值可以被賦值給任何類型;而任何值都可以被分配到動態類型。這有一些缺點: * 編譯器將不會再在接受指定類型的賦值、函數調用和其它構造中進行類型檢查。 * 某些優化,特別是編譯為靜態目標語言時,將不能再被使用。 * 一些常見的錯誤,例如字段訪問中的一個拼寫錯誤,將不能在編譯時被發現,可能會引發運行時的錯誤。 * 如果字段是通過 Dynamic 類型使用,[無用代碼消除(第8.2節)](http://#) 不能檢測使用到的字段 使用 Dynamic 類型可能引發運行時錯誤的例子非常容易出現。思考下面的兩行代碼到靜態目標語言的編譯: ~~~ var d:Dynamic = 1; d.foo; ~~~ 嘗試在 Flash 播放器運行編譯后的程序,會產生一個錯誤 ,屬性 `foo` 在 數值類型中沒有找到,而且沒有默認值。不使用 Dynamic,這會在編譯時被偵測到。 >[warning] **花絮**:Haxe 3之前的 Dynamic 類型推斷 > Haxe 3 編譯器從不推斷一個類型為 Dynamic 類型,所以用戶必須明確它。之前的 Haxe 版本曾經推斷 數組為一個混合類型,如 `[1, true, "foo"]` 為 `Array<Dynamic>`。我們發現這個行為會引發太多的類型問題,因此在 Haxe 3 中移除了它。 應該盡量少的使用 Dynamic 類型,因為很多情況下都有更好的選擇,但是有時候實際會用到它。Haxe [反射(第10.7節)](http://#) API中部分使用了 Dynamic 類型,而且有時候它是在處理編譯時未知的自定義數據結構最好選擇。當被用一個 [單形(第2.9節)](http://#) [統一(第3.5節)](http://#) 的時候,Dynamic 類型以一種特殊的方式運行。單形沒有綁定到 Dynamic,這可以在如下例子中帶來令人驚喜的結果: ~~~ class Main { static function main() { var jsonData = ’[1, 2, 3]’; var json = haxe.Json.parse(jsonData); $type(json); // Unknown<0> for (i in 0...json.length) { // Array access is not allowed on // {+ length : Int } trace(json[0]); } } } ~~~ 盡管 `Json.parse` 的返回類型是 Dynamic 類型,局部變量 `json` 的類型并沒有綁定到動態類型,仍然保持了一個單形。然后它在 json.length 字段訪問上被推斷為一個 [匿名結構(第2.5節)](http://#),使后面的 `json[0]` 數組訪問失敗。為了避免這個問題,變量 `json` 可以通過使用 `var json:Dynamic` 顯式的聲明為 Dynamic 類型。 >[warning] **花絮**:標準庫中的 Dynamic 類型 Dynamic 類型在 Haxe 3 之前非常頻繁的使用在標準庫中。隨著 Haxe 類型系統的持續改進,Dynamic 類型的出現在通往 Haxe 3的版本被減少。
                  <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>

                              哎呀哎呀视频在线观看