首页 > 后端开发 > Golang > 正文

如何在没有 For 循环的情况下读取 Go 中的整数值?

Barbara Streisand
发布: 2024-10-30 05:30:28
原创
887 人浏览过

How Can I Read Integer Values in Go Without a For Loop?

在 Golang 中高效读取整数值

从标准输入读取一组整数值并将它们存储在切片中,而不使用传统的方法for 循环,可以采用优化的方法。

使用递归函数的解决方案

此方法利用递归函数 ReadN,该函数采用整数切片、起始索引,以及要读取的整数数量。通过连续的递归调用,它可以有效地将整数分配给切片。

示例代码:

<code class="go">package main

import "fmt"

func main() {
    fmt.Println(`Enter the number of integers`)
    var n int
    if m, err := Scan(&n); m != 1 {
        panic(err)
    }
    fmt.Println(`Enter the integers`)
    all := make([]int, n)
    ReadN(all, 0, n)
    fmt.Println(all)
}

func ReadN(all []int, i, n int) {
    if n == 0 {
        return
    }
    if m, err := Scan(&all[i]); m != 1 {
        panic(err)
    }
    ReadN(all, i+1, n-1)
}

func Scan(a *int) (int, error) {
    return fmt.Scan(a)
}</code>
登录后复制

更快的输入扫描

为了更快的输入扫描,请用更高效的替代方案替换自定义扫描功能:

<code class="go">func Scan(a *int) (int, error) {
    return fmt.Scanf("%d\n", a)
}</code>
登录后复制

示例输入和输出:

Enter the number of integers
3
Enter the integers
10 20 30
[10 20 30]
登录后复制

此优化解决方案提供了一种从标准输入读取整数的有效方法,而无需 for 循环的开销。

以上是如何在没有 For 循环的情况下读取 Go 中的整数值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!