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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 接口值 接口的值,接口值,由兩個部分組成,一個具體的類型和那個類型的值。它們被稱為接口的動態類型和動態值。對于像Go語言這種靜態類型的語言,類型是編譯期的概念;因此一個類型不是一個值。在我們的概念模型中,一些提供每個類型信息的值被稱為類型描述符,比如類型的名稱和方法。在一個接口值中,類型部分代表與之相關類型的描述符。 ## 接口的動態類型和動態值 ~~~ var w io.Writer w = os.Stdout w.Write([]byte("hello")) w = new(bytes.Buffer) w.Write([]byte("hello")) w.String() //error,雖然動態類型是bytes.Buffer,但是因為接口的封裝性,此時w沒有String方法 buffer := w.(*bytes.Buffer) fmt.Println(buffer.String()) ~~~ ## 動態值大小 ~~~ var x interface{} = time.Now() ~~~ ![](https://img.kancloud.cn/bd/53/bd531f20be18d92ad2afb877b91a8856_672x312.png) 從概念上講,不論接口值多大,動態值總是可以容下它。(這只是一個概念上的模型;具體的實現可能會非常不同) ## 警告,小心空指針非空接口 以下會引起panic ~~~ const debug = false func main() { var buf *bytes.Buffer if debug { buf = new(bytes.Buffer) } f(buf) } func f(out io.Writer) { //*bytes.Buffer對于io.writer來說是一個非空接口,所以下面!=的判斷結果是false fmt.Println(out) //nil fmt.Println(out != nil) //false if out != nil { out.Write([]byte("done")) } } ~~~
                  <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>

                              哎呀哎呀视频在线观看