输入最多一次批处理10个

时间:2018-12-17 02:56:15

标签: loops go

我正在尝试并且无法完成一次最多输入10次的简单任务。以下代码几乎可以正常工作:

vignette("nse")

但是您可以从https://play.golang.org/p/_UgFD1iDyse中看到它的打印内容:

func batchMe(input []int) {
    fmt.Println("Length", len(input), len(input)/10)
    for i := 0; i <= len(input)/10; i++ {
        from := i * 10
        to := (i + 1) * 10
        if len(input) < to {
            to = len(input)
        }
        fmt.Println("Batch", i, input[from:to])
    }

在10个元素的情况下,我不希望它打印批次1!

这里也许简化了代码?

1 个答案:

答案 0 :(得分:-1)

电视上#go-nuts的优雅解决方案如下:

for len(input) > 0 {
    n := 10
    if n > len(input) {
        n = len(input)
    }
    chunk := input[:n]
    input = input[n:]
    fmt.Println("Batch", chunk)
}

https://play.golang.org/p/Y3U8dUD7Zrr