Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membaca Integer Berbilang daripada Input Standard di Golang Tanpa Gelung For?

Bagaimana untuk Membaca Integer Berbilang daripada Input Standard di Golang Tanpa Gelung For?

Barbara Streisand
Barbara Streisandasal
2024-10-29 01:10:30470semak imbas

How to Read Multiple Integers from Standard Input in Golang Without a For Loop?

Membaca Integer Dipisahkan Oleh Ruang di Golang

Soalan:

Cara membaca berbilang dengan cekap integer daripada input standard (stdin) dan simpannya dalam kepingan integer tanpa menggunakan gelung for di Golang? Contohnya, diberikan input berikut:

Enter the number of integers
3
Enter the integers
23 45 66

Bagaimana untuk menukar nilai ini kepada hirisan integer?

Jawapan:

Walaupun gelung sememangnya wujud, adalah mungkin untuk mencapainya tanpa menggunakan gelung for atau goto yang eksplisit. Begini caranya:

<code class="go">package main

import "fmt"

func main() {
    fmt.Println(`Enter the number of integers`)
    var n int
    if m, err := Scan(&amp;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(&amp;all[i]); m != 1 {
        panic(err)
    }
    ReadN(all, i+1, n-1)
}

func Scan(a *int) (int, error) {
    return fmt.Scan(a)
}</code>

Contoh Input/Output:

Enter the number of integers
3
Enter the integers
10 20 30
[10 20 30]

Pengoptimuman untuk Pengimbasan Input yang Lebih Pantas:

Untuk meningkatkan kelajuan pengimbasan input, gantikan fungsi Imbas dengan versi dioptimumkan berikut:

<code class="go">func Scan(a *int) (int, error) {
    var buf [10]byte
    var ret int
    for scanned, err := fmt.Scanf("%d%s", &ret, &buf); err == nil && scanned != 2; {
        fmt.Scanf("%s", &buf)
    }
    *a = ret
    return 1, err
}</code>

Atas ialah kandungan terperinci Bagaimana untuk Membaca Integer Berbilang daripada Input Standard di Golang Tanpa Gelung For?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn