<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國際加速解決方案。 廣告
                ## 5.10\. 方法 ### 5.10.1\. 指針vs值 方法可用于任意帶名的非指針和界面的類型;接受者沒必要是結構。 在上面討論切片時,我們寫了個 Append 函數。其實我們可以把它定義為切片的方法。首先我們聲明一個帶名的類型,以便我們在其上施加方法,并使此方法的接受者的值是此類型。 ``` type ByteSlice []byte func (slice ByteSlice) Append(data []byte) []byte { // Body exactly the same as above } ``` 這仍需方法返回更新的切片,更靈活的方式是定義方法接受 ByteSlice 的指針,以便重寫調用著的切片。 ``` func (p *ByteSlice) Append(data []byte) { slice := *p // Body as above, without the return. *p = slice } ``` 實際上,我們能做的更好。如果我們把函數改的像標準的 Write 方法,例如: ``` func (p *ByteSlice) Write(data []byte) (n int, err os.Error) { slice := *p // Again as above. *p = slice return len(data), nil } ``` 此時類型 *ByteSlice 可以滿足標準界面 io.Writer,很方便的,例如我們打印到里面: ``` var b ByteSlice fmt.Fprintf(&b, "This hour has %d days\n", 7) ``` 我們傳遞 ByteSlice 的地址是因為只有 *ByteSlice 滿足 io.Writer。接受者的指針和值規則是,值的方法可用于指針和值,而指針的方法只用于指針。這是因為指針方法可以改變接受者;使用拷貝的值會導致這些改變的丟失。 順便一提,字節切片的 Write 已在 bytes.Buffer 實現。
                  <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>

                              哎呀哎呀视频在线观看