【问题标题】:Go: Check if every item in a slice meets a conditionGo:检查切片中的每个项目是否满足条件
【发布时间】:2023-02-13 19:15:26
【问题描述】:

检查切片中的每个项目是否满足某些条件的最优雅的方法是什么?在我的特定场景中,我有一段字节:[16]byte。我需要检查所有字节是否为 0。

例如,在 JS 中,我会做这样的事情:

const uint8Array = new Uint8Array([0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0])//Can be thought of as an array of "bytes"

const isEmpty = uint8Array.every(byte=>byte === 0)//Check that every "byte" is zero

console.log(isEmpty)//false

在 Go 中执行此操作的最干净、最直接的方法是什么?

【问题讨论】:

    标签: go


    【解决方案1】:

    最直接的方法是使用基于范围的 for 循环,因为据我所知,Go 没有类似于 .ForEach 的内置函数。

    如果你不需要索引,你可以从循环中省略它,你会得到类似的东西:

    isEmpty := true
    for _, val := range uint8Array {
        if val != 0 {
            isEmpty=false
            break
        }
    }
    
    fmt.Println(isEmpty)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      相关资源
      最近更新 更多