我想在Go中生成一个数字序列,但找不到任何内置函数

array range ( mixed $start , mixed $end [, number $step = 1 ] )

当创建数字类型的切片/数组,并且希望用数字序列填充/初始化它时,它会很有用.

推荐答案

Go标准库中没有PHP的range.你必须自己创造一个.最简单的方法是使用for循环:

func makeRange(min, max int) []int {
    a := make([]int, max-min+1)
    for i := range a {
        a[i] = min + i
    }
    return a
}

使用它:

a := makeRange(10, 20)
fmt.Println(a)

输出(在Go Playground上试用):

[10 11 12 13 14 15 16 17 18 19 20]

另请注意,如果范围较小,则可以使用composite literal:

a := []int{1, 2, 3}
fmt.Println(a) // Output is [1 2 3]

Go相关问答推荐

Golang读写更接近于io.File

追加一个字节数组的分配比2个字节数组的分配要少得多

正在使用terratest执行terraform脚本测试,但遇到错误退出状态1

Golang XML密钥名称冲突

减少在围棋中映射DTO时的重复代码量

go测试10m后如何避免超时

如何为循环扫描的bufio scanner 设置超时?

这是泛型的有效用例吗?

为什么不同的 Wireguard 私钥会产生相同的公钥?

go version -m 输出中的箭头符号=>是什么意思?

如何在 Docker 容器中使用私有存储库进行身份验证

具有两个或多个模型的 GORM 查询

如果 transaction.Commit 对带有 postgres 连接的 SQL 失败,您是否需要调用 transaction.RollBack

为什么 x/net/html Token().Attr 上的 len 在此处为空切片返回非零值?

使用 delve 在容器中调试 Golang:container_linux.go:380:启动容器进程导致:exec:/dlv:stat /dlv:没有这样的文件或目录

将基本 HTTP AUth 用户/密码凭据存储在 GO 中,无需外部包

我该如何做错误处理惯用的方式

Go 赋值涉及到自定义类型的指针

如何使用 fyne 避免 GUI 应用程序中的循环依赖?

带有 *s3.S3 对象的 Golang 单元测试