<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # **切片的自動擴容** 切片有兩個主要的屬性:**容量(cap)**和**長度(len)**,而且這兩個屬性的值往往是不一樣的。一個與數組擁有相同數量元素的切片,二者的長度是相同的,且均可以通過函數`len()`獲得。切片的容量是指切片能夠容納的元素空間,可以通過`cap()`函數獲得。由于切片的大小是動態變化的,如果一個切片超出了其設置的容量,Go會自動將該切片的長度變為原來的兩倍,以存放超出的元素。 簡單來說,當切片的容量和長度相等時,你再往該切片追加一個元素,當然長度增加1,但是切片的容量會變為原來的兩倍。然而這種操作可能對于小的切片效果比較好,對于大型切片來說會占用的內存會超出你預期。 下面的代碼`lenCap.go`分三部分,清楚地闡述了切片的容量與長度的變化規律,第一部分代碼: ```go package main func printSlice(x []int) { for _, number := range x { fmt.Println(number, " ") } fmt.Println() } ``` `printSlice()`打印一個slice的所有元素。 第二部分代碼: ```go func main() { aSlice := []int{-1, 0, 4} fmt.Printf("aSlice: ") printSlice(aSlice) fmt.Printf("Cap: %d, Length: %d\n",cap(aSlice),len(aSlice)) aSlice = append(aSlice, -100) fmt.Printf("aSlice: ") printSlice(aSlice) fmt.Printf("Cap: %d, Length: %d\n",cap(aSlice),len(aSlice)) ``` 這部分代碼中,我們往aSlice中添加元素以出發其長度和容量的變化。 第三部分代碼: ```go aSlice = append(aSlice, -2) aSlice = append(aSlice, -3) aSlice = append(aSlice, -4) printSlice(aSlice) fmt.Printf("Cap: %d, Length: %d\n",cap(aSlice),len(aSlice)) } ``` 以上代碼的執行結果是: ```bash $ go run lenCap.go aSlice: -1 0 4 Cap: 3, Length: 3 aSlice: -1 0 4 -100 Cap: 6, Length: 4 -1 0 4 -100 -2 -3 -4 Cap: 12, Length: 7 ``` 正如輸出所示,初始的切片長度和容量均是3,在添加一個元素之后,其長度變為4,然后容量變為6。繼續往切片中追加元素,其長度變為7,容量再一次翻倍即變為12。
                  <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>

                              哎呀哎呀视频在线观看