首页 >后端开发 >Golang >如何在没有 For 循环的情况下读取 Go 中的整数值?

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

Barbara Streisand
Barbara Streisand原创
2024-10-30 05:30:281024浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn