2 回答

TA貢獻(xiàn)1852條經(jīng)驗 獲得超7個贊
例如,
package main
import "fmt"
func main() {
slice := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
for i := 0; i < len(slice); i += 4 {
var section []int
if i > len(slice)-4 {
section = slice[i:]
} else {
section = slice[i : i+4]
}
fmt.Println(section)
}
}
游樂場:https://play.golang.org/p/kf7_OJcP13t
輸出:
[1 2 3 4]
[5 6 7 8]
[9 10 11 12]
[13 14 15]

TA貢獻(xiàn)1780條經(jīng)驗 獲得超4個贊
如何在 Go 中迭代切片,一次迭代 4 個項目。我想要一個 for 循環(huán)。
在 Go 中,可讀性至關(guān)重要。首先我們讀取正常路徑,然后讀取異常/錯誤路徑。
我們寫正常的路徑。
n := 4
for i := 0; i < len(s); i += n {
ss := s[i : i+n]
fmt.Println(ss)
}
我們n始終使用步幅值。
我們編寫了一個小調(diào)整,不會干擾處理異常(切片末尾)的正常路徑。
if n > len(s)-i {
n = len(s) - i
}
例如,
package main
import "fmt"
func main() {
s := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
n := 4
for i := 0; i < len(s); i += n {
if n > len(s)-i {
n = len(s) - i
}
ss := s[i : i+n]
fmt.Println(ss)
}
}
游樂場:https://play.golang.org/p/Vtpig2EeXB7
輸出:
[1 2 3 4]
[5 6 7 8]
[9 10 11 12]
[13 14 15]
- 2 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報