<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 功能強大 支持多語言、二開方便! 廣告
                # 11.8 第二個例子:讀和寫 讀和寫是軟件中很普遍的行為,提起它們會立即想到讀寫文件、緩存(比如字節或字符串切片)、標準輸入輸出、標準錯誤以及網絡連接、管道等等,或者讀寫我們的自定義類型。為了是代碼盡可能通用,Go 采取了一致的方式來讀寫數據。 `io` 包提供了用于讀和寫的接口 `io.Reader` 和 `io.Writer`: ``` type Reader interface { Read(p []byte) (n int, err error) } type Writer interface { Write(p []byte) (n int, err error) } ``` 只要類型實現了讀寫接口,提供 `Read()` 和 `Write` 方法,就可以從它讀取數據,或向它寫入數據。一個對象要是可讀的,它必須實現 `io.Reader` 接口,這個接口只有一個簽名是 `Read(p []byte) (n int, err error)` 的方法,它從調用它的對象上讀取數據,并把讀到的數據放入參數中的字節切片中,然后返回讀取的字節數和一個 `error` 對象,如果沒有錯誤發生返回 'nil',如果已經到達輸入的尾端,會返回 `io.EOF("EOF")`,如果讀取的過程中發生了錯誤,就會返回具體的錯誤信息。類似地,一個對象要是可寫的,它必須實現 `io.Writer` 接口,這個接口也只有一個簽名是 `Write(p []byte) (n int, err error)` 的方法,它將指定字節切片中的數據寫入調用它的對象里,然后返回實際寫入的字節數一個 `error` 對象(如果沒有錯誤發生就是 `nil`)。 `io` 包里的 `Readers` 和 `Writers` 都是不帶緩沖的,`bufio` 包里提供了對應的帶緩沖的操作,在讀寫 `UTF-8` 編碼的文本文件時它們尤其有用。在 第12章 我們會看在實戰使用它們的很多例子。 在實際編程中盡可能的使用這些接口,會使程序變得更通用,可以在任何實現了這些接口的類型上使用讀寫方法。 例如一個 `JPEG` 圖形解碼器,通過一個 `Reader` 參數,它可以解碼來自磁盤、網絡連接或以 `gzip` 壓縮的 `HTTP` 流中的`JPEG` 圖形數據,或者其他任何實現了 `Reader` 接口的對象。 ##
                  <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>

                              哎呀哎呀视频在线观看