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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 7.3 For-range 結構 這種構建方法可以應用與數組和切片: ``` for ix, value := range slice1 { ... } ``` 第一個返回值 dx 是數組或者切片的索引,第二個是在該索引位置的值;他們都是僅在 for 循環內部可見的局部變量。value 只是 slice1 某個索引位置的值的一個拷貝,不能用來修改 slice1 該索引位置的值。 示例 7.9 [slices\_forrange.go](https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/examples/chapter_7/slices_forrange.go) ``` package main import "fmt" func main() { var arr1 [5]int for i:=0; i < len(arr1); i++ { arr1[i] = i * 2 } for i:=0; i < len(arr1); i++ { fmt.Printf("Array at index %d is %d\n", i, arr1[i]) } } ``` 示例 7.10 [slices\_forrange2.go](https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/examples/chapter_7/slices_forrange2.go) ``` package main import "fmt" func main() { seasons := []string{"Spring", "Summer", "Autumn", "Winter"} for ix, season := range seasons { fmt.Printf("Season %d is: %s\n", ix, season) } var season string for _, season = range seasons { fmt.Printf("%s\n", season) } } ``` slices*forrange2.go 給出了一個關于字符串的例子, `*` 可以用于忽略索引。 如果你只需要索引,你可以忽略第二個變量,例如: ``` for ix := range seasons { fmt.Printf("%d", ix) } // Output: 0 1 2 3 ``` 如果你需要修改 `seasons[ix]` 的值可以使用這個版本。 **多維切片下的 for-range:** 通過計算行數和矩陣值可以很方便的寫出如(參考第 7.1.3 節)的 for 循環來,例如(參考第 7.5 節的例子 multidim\_array.go): ``` for row := range screen { for column := range screen[0] { screen[row][column] = 1 } } ``` **問題 7.5** 假設我們有如下數組:`items := [...]int{10, 20, 30, 40, 50}` a) 如果我們寫了如下的 for 循環,那么執行完 for 循環后的 `items` 的值是多少?如果你不確定的話可以測試一下:) ``` for _, item := range items { item *= 2 } ``` b) 如果 a) 無法正常工作,寫一個 for 循環讓值可以 double。 **問題 7.6** 通過使用省略號操作符 `...` 來實現累加方法。 **練習 7.7** sum\_array.go a) 寫一個 Sum 函數,傳入參數為一個 4 位 float 數組成的數組 arrF,返回該數組的所有數字和。 如果把數組修改為切片的話代碼要做怎樣的修改?如果用切片形式方法實現不同長度數組的的和呢? b) 寫一個 SumAndAverage 方法,返回兩個 int 和 float32 類型的未命名變量的和與平均值。 **練習 7.8** min\_max.go 寫一個 minSlice 方法,傳入一個 int 的切片并且返回最小值,再寫一個 maxSlice 方法返回最大值。
                  <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>

                              哎呀哎呀视频在线观看