首頁 > 後端開發 > Golang > 主體

如何在沒有 For 迴圈的情況下讀取 Go 中的整數值?

Barbara Streisand
發布: 2024-10-30 05:30:28
原創
955 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板