ホームページ > バックエンド開発 > Golang > For ループを使用せずに Go で整数値を読み取るにはどうすればよいですか?

For ループを使用せずに Go で整数値を読み取るにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-30 05:30:28
オリジナル
956 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート