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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                接口變量的類型也可以使用一種特殊形式的?`swtich`?來檢測:**type-swtich**?(下面是示例 11.4 的第二部分): ~~~ switch t := areaIntf.(type) { case *Square: fmt.Printf("Type Square %T with value %v\n", t, t) case *Circle: fmt.Printf("Type Circle %T with value %v\n", t, t) case nil: fmt.Printf("nil value: nothing to check?\n") default: fmt.Printf("Unexpected type %T\n", t) } ~~~ 輸出: ~~~ Type Square *main.Square with value &{5} ~~~ 變量?`t`?得到了?`areaIntf`?的值和類型, 所有?`case`?語句中列舉的類型(`nil`?除外)都必須實現對應的接口(在上例中即?`Shaper`),如果被檢測類型沒有在?`case`?語句列舉的類型中,就會執行?`default`?語句。 可以用?`type-switch`?進行運行時類型分析,但是在?`type-switch`?不允許有?`fallthrough`?。 如果僅僅是測試變量的類型,不用它的值,那么就可以不需要賦值語句,比如: ~~~ switch areaIntf.(type) { case *Square: // TODO case *Circle: // TODO ... default: // TODO } ~~~ 下面的代碼片段展示了一個類型分類函數,它有一個可變長度參數,可以是任意類型的數組,它會根據數組元素的實際類型執行不同的動作: ~~~ func classifier(items ...interface{}) { for i, x := range items { switch x.(type) { case bool: fmt.Printf("Param #%d is a bool\n", i) case float64: fmt.Printf("Param #%d is a float64\n", i) case int, int64: fmt.Printf("Param #%d is a int\n", i) case nil: fmt.Printf("Param #%d is a nil\n", i) case string: fmt.Printf("Param #%d is a string\n", i) default: fmt.Printf("Param #%d is unknown\n", i) } } } ~~~ 可以這樣調用此方法:`classifier(13, -14.3, "BELGIUM", complex(1, 2), nil, false)`?。 在處理來自于外部的、類型未知的數據時,比如解析諸如 JSON 或 XML 編碼的數據,類型測試和轉換會非常有用。 在示例 12.17(xml.go)中解析 XML 文檔時,我們就會用到?`type-switch`。 **練習 11.4**?simple_interface2.go: 接著練習 11.1 中的內容,創建第二個類型?`RSimple`,它也實現了接口?`Simpler`,寫一個函數?`fi`,使它可以區分`Simple`?和?`RSimple`?類型的變量。
                  <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>

                              哎呀哎呀视频在线观看